From 4043b0bfe72482b159e13fa871a78db8fa6d97e8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 02:38:44 -0700 Subject: [PATCH 01/16] [instructions] Sync instruction files: client-id preferred, Serena migration (#30968) --- .github/aw/github-mcp-server.md | 5 +++-- .github/aw/safe-outputs.md | 4 ++-- .github/aw/serena-tool.md | 27 ++++++++++++++++++--------- .github/aw/syntax.md | 6 +++--- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/.github/aw/github-mcp-server.md b/.github/aw/github-mcp-server.md index 14d8834ffeb..d04a541079c 100644 --- a/.github/aw/github-mcp-server.md +++ b/.github/aw/github-mcp-server.md @@ -34,8 +34,9 @@ tools: github: toolsets: [default] # or specific toolsets # Optional: GitHub App authentication - app-id: ${{ vars.APP_ID }} - private-key: ${{ secrets.APP_PRIVATE_KEY }} + github-app: + client-id: ${{ vars.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} ``` > ⚠️ **Do NOT use `mode: remote`** in GitHub Actions workflows. Remote mode does not work with the GitHub Actions token (`GITHUB_TOKEN`) — it requires a special PAT or GitHub App token with MCP access. The default `mode: local` (Docker-based) works with `GITHUB_TOKEN` and should always be used. diff --git a/.github/aw/safe-outputs.md b/.github/aw/safe-outputs.md index 08b787bc02d..29d3bd98b5e 100644 --- a/.github/aw/safe-outputs.md +++ b/.github/aw/safe-outputs.md @@ -948,7 +948,7 @@ Fields that influence permission computation (`add-comment.discussions`, `create - `github-app:` - GitHub App credentials for minting installation access tokens (object) - When configured, generates a token from the app and uses it for all safe output operations (alternative to `github-token`) - Fields: - - `app-id:` - GitHub App ID (required, e.g., `${{ vars.APP_ID }}`) + - `client-id:` - GitHub App client ID (required, e.g., `${{ vars.APP_ID }}`). Use `app-id:` for legacy compatibility. - `private-key:` - GitHub App private key (required, e.g., `${{ secrets.APP_PRIVATE_KEY }}`) - `owner:` - Optional App installation owner (defaults to current repository owner) - `repositories:` - Optional list of repositories to grant access to @@ -957,7 +957,7 @@ Fields that influence permission computation (`add-comment.discussions`, `create ```yaml safe-outputs: github-app: - app-id: ${{ vars.APP_ID }} + client-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} create-issue: ``` diff --git a/.github/aw/serena-tool.md b/.github/aw/serena-tool.md index 706ebface3f..c6a2587d613 100644 --- a/.github/aw/serena-tool.md +++ b/.github/aw/serena-tool.md @@ -22,17 +22,21 @@ Serena is a **language service protocol (LSP) MCP server** for semantic code ana ## Configuration -Add to workflow frontmatter: +Import the shared Serena workflow via the `imports:` field — `tools.serena` has been removed: ```yaml -tools: - serena: ["go"] # Specify language(s): go, typescript, python, ruby, rust, java, cpp, csharp +imports: + - uses: shared/mcp/serena.md + with: + languages: ["go"] # Specify language(s): go, typescript, python, ruby, rust, java, cpp, csharp ``` Multi-language repositories: ```yaml -tools: - serena: ["go", "typescript"] # First language is default fallback +imports: + - uses: shared/mcp/serena.md + with: + languages: ["go", "typescript"] # First language is default fallback ``` ## Available Serena Tools @@ -78,8 +82,11 @@ tools: **Best practice**: Use bash for discovery, Serena for analysis ```yaml +imports: + - uses: shared/mcp/serena.md + with: + languages: ["go"] tools: - serena: ["go"] bash: - "find pkg -name '*.go' ! -name '*_test.go'" - "cat go.mod" @@ -97,9 +104,11 @@ tools: Track analysis state across runs: ```yaml -tools: - serena: ["go"] - cache-memory: true # Store analysis history +imports: + - uses: shared/mcp/serena.md + with: + languages: ["go"] +cache-memory: true # Store analysis history ``` Load cache → Analyze new/changed files → Save results → Avoid redundant work diff --git a/.github/aw/syntax.md b/.github/aw/syntax.md index 096519e85bb..390cd1750c6 100644 --- a/.github/aw/syntax.md +++ b/.github/aw/syntax.md @@ -79,7 +79,7 @@ The YAML frontmatter supports these fields: - Mints a single installation access token shared across reactions, status comments, and skip-if queries - Can be defined in a shared agentic workflow and inherited by importing workflows - Fields: - - `app-id:` - GitHub App ID (required, e.g., `${{ vars.APP_ID }}`) + - `client-id:` - GitHub App client ID (required, e.g., `${{ vars.APP_ID }}`). Use `app-id:` for legacy compatibility. - `private-key:` - GitHub App private key (required, e.g., `${{ secrets.APP_PRIVATE_KEY }}`) - `owner:` - Optional installation owner (defaults to current repository owner) - `repositories:` - Optional list of repositories to grant access to @@ -90,7 +90,7 @@ The YAML frontmatter supports these fields: issues: types: [opened] github-app: - app-id: ${{ vars.APP_ID }} + client-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} ``` @@ -487,7 +487,7 @@ The YAML frontmatter supports these fields: - `github-token:` - Custom GitHub token - `lockdown:` - Enable lockdown mode to limit content surfaced from public repositories to items authored by users with push access (boolean, default: false) - `github-app:` - GitHub App configuration for token minting; when set, mints an installation access token at workflow start that overrides `github-token` - - `app-id:` - GitHub App ID (required, e.g., `${{ vars.APP_ID }}`) + - `client-id:` - GitHub App client ID (required, e.g., `${{ vars.APP_ID }}`). Use `app-id:` for legacy compatibility. - `private-key:` - GitHub App private key (required, e.g., `${{ secrets.APP_PRIVATE_KEY }}`) - `owner:` - Optional installation owner (defaults to current repository owner) - `repositories:` - Optional list of repositories to grant access to (array) From eb4a112280409eb0c851f4da7a7319a61ca947f1 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 02:41:31 -0700 Subject: [PATCH 02/16] fix: remove redundant double type assertion in validateMCPRequirements (#30952) --- .github/workflows/ab-testing-advisor.lock.yml | 6 ++-- .github/workflows/ace-editor.lock.yml | 8 +++--- .../agent-performance-analyzer.lock.yml | 6 ++-- .../workflows/agent-persona-explorer.lock.yml | 6 ++-- .../workflows/api-consumption-report.lock.yml | 6 ++-- .github/workflows/approach-validator.lock.yml | 6 ++-- .github/workflows/archie.lock.yml | 6 ++-- .../workflows/architecture-guardian.lock.yml | 6 ++-- .github/workflows/artifacts-summary.lock.yml | 6 ++-- .github/workflows/audit-workflows.lock.yml | 6 ++-- .../aw-failure-investigator.lock.yml | 6 ++-- .github/workflows/blog-auditor.lock.yml | 6 ++-- .github/workflows/bot-detection.lock.yml | 8 +++--- .github/workflows/brave.lock.yml | 6 ++-- .../breaking-change-checker.lock.yml | 6 ++-- .github/workflows/changeset.lock.yml | 6 ++-- .github/workflows/ci-coach.lock.yml | 6 ++-- .github/workflows/ci-doctor.lock.yml | 6 ++-- .../claude-code-user-docs-review.lock.yml | 6 ++-- .../cli-consistency-checker.lock.yml | 6 ++-- .../workflows/cli-version-checker.lock.yml | 6 ++-- .github/workflows/cloclo.lock.yml | 6 ++-- .../workflows/code-scanning-fixer.lock.yml | 6 ++-- .github/workflows/code-simplifier.lock.yml | 6 ++-- .../codex-github-remote-mcp-test.lock.yml | 6 ++-- .../commit-changes-analyzer.lock.yml | 6 ++-- .../constraint-solving-potd.lock.yml | 6 ++-- .../workflows/copilot-agent-analysis.lock.yml | 6 ++-- .../copilot-cli-deep-research.lock.yml | 6 ++-- .github/workflows/copilot-opt.lock.yml | 6 ++-- .../copilot-pr-nlp-analysis.lock.yml | 6 ++-- .../copilot-pr-prompt-analysis.lock.yml | 6 ++-- .../copilot-session-insights.lock.yml | 6 ++-- .../workflows/copilot-token-audit.lock.yml | 6 ++-- .../copilot-token-optimizer.lock.yml | 6 ++-- .github/workflows/craft.lock.yml | 6 ++-- .../daily-architecture-diagram.lock.yml | 6 ++-- .../daily-assign-issue-to-user.lock.yml | 6 ++-- ...strostylelite-markdown-spellcheck.lock.yml | 6 ++-- ...daily-aw-cross-repo-compile-check.lock.yml | 6 ++-- .../daily-cache-strategy-analyzer.lock.yml | 18 ++++++------ .../daily-caveman-optimizer.lock.yml | 6 ++-- .github/workflows/daily-choice-test.lock.yml | 6 ++-- .../workflows/daily-cli-performance.lock.yml | 8 +++--- .../workflows/daily-cli-tools-tester.lock.yml | 6 ++-- .github/workflows/daily-code-metrics.lock.yml | 6 ++-- .../daily-community-attribution.lock.yml | 6 ++-- .../workflows/daily-compiler-quality.lock.yml | 6 ++-- ...ly-compiler-threat-spec-optimizer.lock.yml | 6 ++-- .github/workflows/daily-doc-healer.lock.yml | 6 ++-- .../daily-experiment-report.lock.yml | 6 ++-- .github/workflows/daily-fact.lock.yml | 18 ++++++------ .github/workflows/daily-file-diet.lock.yml | 6 ++-- .../workflows/daily-firewall-report.lock.yml | 6 ++-- .../workflows/daily-function-namer.lock.yml | 6 ++-- .../workflows/daily-geo-optimizer.lock.yml | 6 ++-- ...fana-otel-instrumentation-advisor.lock.yml | 6 ++-- .github/workflows/daily-hippo-learn.lock.yml | 6 ++-- .../daily-malicious-code-scan.lock.yml | 6 ++-- .../daily-mcp-concurrency-analysis.lock.yml | 6 ++-- .../workflows/daily-model-inventory.lock.yml | 6 ++-- .../daily-multi-device-docs-tester.lock.yml | 6 ++-- .github/workflows/daily-news.lock.yml | 6 ++-- .../daily-observability-report.lock.yml | 18 ++++++------ ...aily-otel-instrumentation-advisor.lock.yml | 6 ++-- .../daily-performance-summary.lock.yml | 6 ++-- .github/workflows/daily-regulatory.lock.yml | 6 ++-- .../daily-rendering-scripts-verifier.lock.yml | 6 ++-- .../workflows/daily-repo-chronicle.lock.yml | 6 ++-- .../daily-safe-output-integrator.lock.yml | 6 ++-- .../daily-safe-output-optimizer.lock.yml | 6 ++-- .../daily-safe-outputs-conformance.lock.yml | 6 ++-- .../workflows/daily-secrets-analysis.lock.yml | 6 ++-- .../daily-security-observability.lock.yml | 6 ++-- .../daily-security-red-team.lock.yml | 6 ++-- .github/workflows/daily-semgrep-scan.lock.yml | 6 ++-- .../workflows/daily-sentrux-report.lock.yml | 6 ++-- .../workflows/daily-skill-optimizer.lock.yml | 6 ++-- .../daily-spdd-spec-planner.lock.yml | 6 ++-- .../daily-subagent-optimizer.lock.yml | 6 ++-- .../daily-syntax-error-quality.lock.yml | 6 ++-- .../daily-team-evolution-insights.lock.yml | 6 ++-- .github/workflows/daily-team-status.lock.yml | 6 ++-- .../daily-testify-uber-super-expert.lock.yml | 6 ++-- .../daily-token-consumption-report.lock.yml | 6 ++-- .../workflows/daily-workflow-updater.lock.yml | 6 ++-- .github/workflows/dead-code-remover.lock.yml | 6 ++-- .github/workflows/deep-report.lock.yml | 6 ++-- .github/workflows/delight.lock.yml | 6 ++-- .github/workflows/dependabot-burner.lock.yml | 6 ++-- .../workflows/dependabot-go-checker.lock.yml | 6 ++-- .github/workflows/dependabot-repair.lock.yml | 6 ++-- .../deployment-incident-monitor.lock.yml | 6 ++-- .../workflows/design-decision-gate.lock.yml | 6 ++-- .github/workflows/dev-hawk.lock.yml | 6 ++-- .github/workflows/dev.lock.yml | 6 ++-- .../developer-docs-consolidator.lock.yml | 6 ++-- .github/workflows/dictation-prompt.lock.yml | 6 ++-- .github/workflows/docs-noob-tester.lock.yml | 6 ++-- .github/workflows/draft-pr-cleanup.lock.yml | 6 ++-- .../duplicate-code-detector.lock.yml | 18 ++++++------ .../example-permissions-warning.lock.yml | 6 ++-- .../example-workflow-analyzer.lock.yml | 6 ++-- .github/workflows/firewall-escape.lock.yml | 8 +++--- .github/workflows/firewall.lock.yml | 6 ++-- .../workflows/functional-pragmatist.lock.yml | 6 ++-- .../github-mcp-structural-analysis.lock.yml | 6 ++-- .../github-mcp-tools-report.lock.yml | 6 ++-- .../github-remote-mcp-auth-test.lock.yml | 6 ++-- .../workflows/glossary-maintainer.lock.yml | 6 ++-- .github/workflows/go-fan.lock.yml | 6 ++-- .github/workflows/go-logger.lock.yml | 6 ++-- .../workflows/go-pattern-detector.lock.yml | 6 ++-- .github/workflows/gpclean.lock.yml | 6 ++-- .github/workflows/hippo-embed.lock.yml | 6 ++-- .github/workflows/hourly-ci-cleaner.lock.yml | 6 ++-- .../workflows/instructions-janitor.lock.yml | 6 ++-- .github/workflows/issue-monster.lock.yml | 6 ++-- .github/workflows/jsweep.lock.yml | 6 ++-- .../workflows/layout-spec-maintainer.lock.yml | 6 ++-- .github/workflows/lockfile-stats.lock.yml | 6 ++-- .github/workflows/mcp-inspector.lock.yml | 10 +++---- .github/workflows/mergefest.lock.yml | 6 ++-- .github/workflows/metrics-collector.lock.yml | 6 ++-- .../workflows/notion-issue-summary.lock.yml | 8 +++--- .github/workflows/pdf-summary.lock.yml | 6 ++-- .github/workflows/poem-bot.lock.yml | 6 ++-- .../prompt-clustering-analysis.lock.yml | 6 ++-- .github/workflows/python-data-charts.lock.yml | 6 ++-- .../workflows/refactoring-cadence.lock.yml | 6 ++-- .github/workflows/release.lock.yml | 18 ++++++------ .../workflows/repo-audit-analyzer.lock.yml | 6 ++-- .github/workflows/repo-tree-map.lock.yml | 6 ++-- .../repository-quality-improver.lock.yml | 6 ++-- .github/workflows/research.lock.yml | 6 ++-- .github/workflows/safe-output-health.lock.yml | 6 ++-- .../schema-consistency-checker.lock.yml | 6 ++-- .../schema-feature-coverage.lock.yml | 18 ++++++------ .../workflows/security-compliance.lock.yml | 6 ++-- .../semantic-function-refactor.lock.yml | 6 ++-- .github/workflows/sergo.lock.yml | 6 ++-- .../workflows/slide-deck-maintainer.lock.yml | 6 ++-- .../workflows/smoke-call-workflow.lock.yml | 18 ++++++------ .github/workflows/smoke-ci.lock.yml | 6 ++-- .github/workflows/smoke-claude.lock.yml | 6 ++-- .github/workflows/smoke-codex.lock.yml | 28 +++++++++---------- .github/workflows/smoke-copilot-arm.lock.yml | 6 ++-- .../smoke-create-cross-repo-pr.lock.yml | 6 ++-- .github/workflows/smoke-crush.lock.yml | 6 ++-- .github/workflows/smoke-gemini.lock.yml | 6 ++-- .github/workflows/smoke-multi-pr.lock.yml | 6 ++-- .github/workflows/smoke-opencode.lock.yml | 6 ++-- .github/workflows/smoke-pi.lock.yml | 6 ++-- .github/workflows/smoke-project.lock.yml | 6 ++-- .../workflows/smoke-service-ports.lock.yml | 6 ++-- .github/workflows/smoke-temporary-id.lock.yml | 6 ++-- .github/workflows/smoke-test-tools.lock.yml | 6 ++-- .../smoke-update-cross-repo-pr.lock.yml | 6 ++-- .../smoke-workflow-call-with-inputs.lock.yml | 6 ++-- .../workflows/smoke-workflow-call.lock.yml | 6 ++-- .github/workflows/spec-enforcer.lock.yml | 6 ++-- .github/workflows/spec-extractor.lock.yml | 6 ++-- .github/workflows/spec-librarian.lock.yml | 6 ++-- .github/workflows/stale-pr-cleanup.lock.yml | 6 ++-- .../workflows/static-analysis-report.lock.yml | 6 ++-- .../workflows/step-name-alignment.lock.yml | 6 ++-- .github/workflows/sub-issue-closer.lock.yml | 6 ++-- .github/workflows/super-linter.lock.yml | 6 ++-- .../workflows/technical-doc-writer.lock.yml | 6 ++-- .github/workflows/terminal-stylist.lock.yml | 6 ++-- .../test-create-pr-error-handling.lock.yml | 6 ++-- .github/workflows/test-dispatcher.lock.yml | 6 ++-- .../test-project-url-default.lock.yml | 6 ++-- .../workflows/test-quality-sentinel.lock.yml | 6 ++-- .github/workflows/test-workflow.lock.yml | 6 ++-- .github/workflows/tidy.lock.yml | 6 ++-- .github/workflows/typist.lock.yml | 6 ++-- .../workflows/ubuntu-image-analyzer.lock.yml | 6 ++-- .github/workflows/unbloat-docs.lock.yml | 6 ++-- .github/workflows/update-astro.lock.yml | 6 ++-- .github/workflows/video-analyzer.lock.yml | 6 ++-- .../visual-regression-checker.lock.yml | 10 +++---- .../weekly-editors-health-check.lock.yml | 6 ++-- .../workflow-health-manager.lock.yml | 6 ++-- .../workflows/workflow-normalizer.lock.yml | 6 ++-- .../workflow-skill-extractor.lock.yml | 8 +++--- pkg/workflow/mcp_property_validation.go | 5 ++-- 187 files changed, 624 insertions(+), 623 deletions(-) diff --git a/.github/workflows/ab-testing-advisor.lock.yml b/.github/workflows/ab-testing-advisor.lock.yml index 72d1ac89b33..b56ebc6ff7d 100644 --- a/.github/workflows/ab-testing-advisor.lock.yml +++ b/.github/workflows/ab-testing-advisor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"41abb433c380d73bcc74acb9e55cf049b3a8cd60e6b862d08a68d3943d9fdbe2","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml index c96f55e8f43..54fcf981ba3 100644 --- a/.github/workflows/ace-editor.lock.yml +++ b/.github/workflows/ace-editor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e62af133a5a0fc20765af5b7d6d3fa73aded5a3fd0b0e44e22cab76f63809c4c","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -432,7 +432,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -967,7 +967,7 @@ jobs: GH_HOST="${GH_HOST#http://}" echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Post ACE editor session link - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: script: | const prNumber = context.payload.issue.number; diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index e282c048d33..b8bcd881736 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4e381be91f6794d308adfc7ce3d3ff611e46f1ba515ffdae710885f83405042a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -466,7 +466,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index 44fdc4ddfaa..40aec314f3e 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6f10b0b64e2d95a4d26a32f10ab44a2815ca092e012fc04e60670606882bb37f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -466,7 +466,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/api-consumption-report.lock.yml b/.github/workflows/api-consumption-report.lock.yml index 0ac433e2951..1de92a0d1ee 100644 --- a/.github/workflows/api-consumption-report.lock.yml +++ b/.github/workflows/api-consumption-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8f7f5703d214e80c35a3895c6059d7315fbf39c67ea6e7633b63fb6ac2adfa71","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -515,7 +515,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/approach-validator.lock.yml b/.github/workflows/approach-validator.lock.yml index ff551c1080d..2e03cf96f7c 100644 --- a/.github/workflows/approach-validator.lock.yml +++ b/.github/workflows/approach-validator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"dac8ac168c64f7eac2c39a0dd339af6ccb10aea8ac5288b8f8377ed09544d72b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -463,7 +463,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 1b5e22dba00..7ba5487d703 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9f175c71a30941bfa9f6fb8d9d02952c06707b28de9ca2f9bd6084efe3b170e1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -506,7 +506,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/architecture-guardian.lock.yml b/.github/workflows/architecture-guardian.lock.yml index 051f59350c1..1161e67099e 100644 --- a/.github/workflows/architecture-guardian.lock.yml +++ b/.github/workflows/architecture-guardian.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f148c31516ffd0cda3b9b9d3914dd7f67f3e6c3a48349b29094e927364362bd9","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -423,7 +423,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 5469f4f60b9..3ea01ae9a84 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0f792dad241113b3c7e7118c507e6ff390e109ec501bc8eeaebe4d84c861e400","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -404,7 +404,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index c1d99fc9f8c..ddcfc8ef733 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0c0daa793941c4ca6bf2ea024c89493964b7e8d92d7242c3b06b9152168a2dbd","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -535,7 +535,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/aw-failure-investigator.lock.yml b/.github/workflows/aw-failure-investigator.lock.yml index 9c704d11379..91004417a26 100644 --- a/.github/workflows/aw-failure-investigator.lock.yml +++ b/.github/workflows/aw-failure-investigator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"da6963c9df994349c6fe23fc8357f4539482525f87af19df1f0b507a00b829cf","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -446,7 +446,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index 334f8686161..2459b93e685 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8e3f96fa71c2ab501231af7aaae2ea7dc443f4d5c1ed72f83a65cac97281689a","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -434,7 +434,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index a3e1350b779..53f6c7cb8eb 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"225edc358fd2519d11b661ca5b81ec89eb125276424620c6c567cea58acd3768","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -424,7 +424,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1131,7 +1131,7 @@ jobs: echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Precompute deterministic findings id: precompute - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 8a5c49babd6..6eb2b2b881d 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3053e93af25517971471cb8fe9f40cc9bada97ced5f00066277f072d8b2e4b89","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["BRAVE_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["BRAVE_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -462,7 +462,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index f2cdba65bba..fa92d77a0e7 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4faeb3ac7bf52adab6574c04479856ed36a098fd1ab00e87edf9b414c37f1611","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 8f80f8cb47c..6633168ffdd 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"928f3f9c2ed5c5afcad0c561553859b1abed6e90d0bb9417de4bffb07c30efbb","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -466,7 +466,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 8c56e568f0b..14a14f0ac13 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"51f89c8cb12198772f75fb83faddd0d0c089deea6a8fcd1164a3fe316ec1f3e4","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -484,7 +484,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index c0db3136a10..c094bb0de63 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d9290755b0a10a3b63fe12bf7cafa645921ae91468c4718849c8740081483861","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -530,7 +530,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index e184aa20c45..0c42af3f724 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c27f06e7e30a5acf0c83de52fddf3d52c8509ce2806b81c9915a5e6cb4d9f49f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -453,7 +453,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 7f5ce058d75..c4aaedac6d7 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f59e01aa6ba935337217727225b906d1c0ca357b290779da03d0cd7eb6662571","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index cba7dbe2275..3f7aaf567f2 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c94fec3fbce538593713e1d78bf05cef0fdc7392f2b3ffb1fe84adec8ff69244","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -437,7 +437,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index cd7aac5743a..21fd48d9c1d 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"81b0e09a68aa6e82ef2982534646abf8861b6b80c91b19f4d6beb50718425a63","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -628,7 +628,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index c34d5fda089..f5ca2752043 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8bf40e478e3d5b64613f634000a17890f7e696fbc8097254607872303a6f5fb4","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -451,7 +451,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index d336fb3dab5..4b57c573c9f 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3b946829a4d8524863fa25f6d387410ee9ded07bcc60d596df6500f87cf34601","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -422,7 +422,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index d57672f9239..b06198b4ceb 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e1fdf4ed94335573d12b3d3eefdd022530bc92c373fe374f759f2ffadf83bc5c","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index b0f4ad74521..1761e589b1f 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4cac19ba054642f03e9a3f5b64925be596ca1f681186f9f97679e0de7b23bef3","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -412,7 +412,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index 1fc85819d8d..7bd0b2f4666 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7efc65e883817022b5f95689bac254ca4cd5142e58a0a5a6c3850f20f776174d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -408,7 +408,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index af5f823385e..87c2b8039e7 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"76a2c458143195c36b8a394940d48ff2c2e07e9071944599dad5d7ca2f61a01a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -491,7 +491,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index ed495c6dce8..1e29e0be8b0 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"86dbbee9ae8243041eaed6efcf3a46480fc3f28a5651382336940dfe2f8274c3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -431,7 +431,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-opt.lock.yml b/.github/workflows/copilot-opt.lock.yml index 7e1a252175a..f9a77bde174 100644 --- a/.github/workflows/copilot-opt.lock.yml +++ b/.github/workflows/copilot-opt.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"379b1a1b41bd9a3438dac4fd0d371a73ccedfb0d3e8025ddf06bf38be796a338","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -458,7 +458,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 7f86916c6c9..1cd57d5cbfb 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a6af1109c23cf60251b6671ad885c154c62971759586814d18245fa443a115da","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -49,8 +49,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -519,7 +519,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index c74a8c010af..ab5e2ce5a14 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"44b66dc9e2e7f1da70438e3e8ae85cf6ac14176c36e32b65630ad451fbf6b42e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -487,7 +487,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index c14bb7c5b20..fcba945991c 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4fe86b361d0266c903e7aed5b5162e363187b2baf68c44c02ca3f2b17ed835ce","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -50,8 +50,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -522,7 +522,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml index 43a429b9278..7b702013474 100644 --- a/.github/workflows/copilot-token-audit.lock.yml +++ b/.github/workflows/copilot-token-audit.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"467577d5171eeab646a24dee35465fba5737a7b032d2b5838b87e598bed1ed3f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -487,7 +487,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-token-optimizer.lock.yml b/.github/workflows/copilot-token-optimizer.lock.yml index 67f27cd5a56..e27948420ef 100644 --- a/.github/workflows/copilot-token-optimizer.lock.yml +++ b/.github/workflows/copilot-token-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f002b9c6104909a29c74b198dba6992105e5b63418b571c341e32f76a4b6ab5b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -451,7 +451,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index cc0ed5a47c2..05a126c3d39 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ab3b3a18d65f7957264e5d6f70a653635eea9856bc3d3ba6514e49cf0502890f","strict":true,"agent_id":"copilot"} -# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -464,7 +464,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index 37953b0408d..34d5c2f6a2a 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"57075b5ba7f895be8a3f55bc46390c2923cf334537b96c709a95a198069786ab","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -445,7 +445,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 1b439fcca3b..967f5134063 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6086cc6cd52cfb63a416942f474c23271721490279d175ff9077b235617b842e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -414,7 +414,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml index 18b779c0002..d66a6d4b503 100644 --- a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml +++ b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ebbe8bdc3bd1688889cc261f6f39d2f5ba7c158ede63b281ba08674170bf4139","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -471,7 +471,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml index 8e6794c6f7e..bdf3b0eeece 100644 --- a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml +++ b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"145fcfd468865b46986f6514b7fb617cd6f83fe1c99fd966e7a193c444983f3a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -449,7 +449,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-cache-strategy-analyzer.lock.yml b/.github/workflows/daily-cache-strategy-analyzer.lock.yml index fbd31d081bc..c926930c5d0 100644 --- a/.github/workflows/daily-cache-strategy-analyzer.lock.yml +++ b/.github/workflows/daily-cache-strategy-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7735bd58acc64d4b6829a234fa1a98c05d50db458582fb63e2c8c6b328355261","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -498,7 +498,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1429,18 +1429,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_8810a319545e151c_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_994ba2010cceb97f_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_8810a319545e151c_EOF + GH_AW_MCP_CONFIG_994ba2010cceb97f_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_bcc09f20fe6cd078_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_42349fa526a592f9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1451,11 +1451,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_bcc09f20fe6cd078_EOF + GH_AW_MCP_CONFIG_42349fa526a592f9_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_320c3092b8930891_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_9421b53be15d1bae_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1465,7 +1465,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_320c3092b8930891_EOF + GH_AW_CODEX_SHELL_POLICY_9421b53be15d1bae_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-caveman-optimizer.lock.yml b/.github/workflows/daily-caveman-optimizer.lock.yml index ce587ca6270..f379585e8b1 100644 --- a/.github/workflows/daily-caveman-optimizer.lock.yml +++ b/.github/workflows/daily-caveman-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0a341c0074fff21d2ae176d9b951b60cbdb5d4de87f416cba588963e5452f093","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -450,7 +450,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index 2b150dccd8a..28b1a45fbbb 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8c90ba6b195929f58b0e6761db669d6037cbd65cd581110ad530d481edfcb623","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -420,7 +420,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index e78e80e61f5..10260672ea3 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"47b9f9bf48bfbd180119537d0e11ac61e3750c1790e68b6a6fe738321a06c6e6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -481,7 +481,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1608,7 +1608,7 @@ jobs: await main(); - name: Detect recent compilation-related changes id: changes - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: script: | const { owner, repo } = context.repo; diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 2a10e748046..7d343e895e8 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d8946ad38647f75543264b70bf628d0bb03d72b1201ec5bc8c2901728f283267","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -460,7 +460,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index ac38fcca27e..35453b36d93 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"421a96409424cc25f20442d1718d6b9d46b552105c126f694c16a3560dec6f97","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -497,7 +497,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index 46b3f41d445..b7476e559b9 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b21689432d5f6d3c2cae1107260d27ca95c85a218c56f36f78344a6c9c67a9a9","strict":true,"agent_id":"copilot","agent_model":"claude-haiku-4.5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -505,7 +505,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 796ad72a697..2d029969452 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"431d1b93ace3a0cc6eb057a024b6d6cae88af68f1d573de6f5f5d5015d1bf4fc","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -483,7 +483,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml index 8d9522ccbed..557e998b9b9 100644 --- a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml +++ b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6ea47d6a0091486c4df2518fc616c177e3b7351e3cd9d8bfde1f9fd327ebd8a3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index bf458545eed..2bb83cdcd92 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"165987363bef3eb402a7f0e930d15f1e587f554b3fec79d3cb60b1b69f1a5c8f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -453,7 +453,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-experiment-report.lock.yml b/.github/workflows/daily-experiment-report.lock.yml index bba7f7ba705..b1bcc76ff9b 100644 --- a/.github/workflows/daily-experiment-report.lock.yml +++ b/.github/workflows/daily-experiment-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0f6749cfd7fe53f0a179f26e17c889d23bfd348ba6e75beeba1a55006bb5cc29","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -468,7 +468,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 1db76b6aa88..27eb7c31b1e 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8f32bb64db41f17a4afc61218164172ce0cb16f27120774267b41dd2e84d67b1","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -561,7 +561,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1437,18 +1437,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_cb6592fe30fbc6fe_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_7689ca1696279047_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_cb6592fe30fbc6fe_EOF + GH_AW_MCP_CONFIG_7689ca1696279047_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_bcb15600c40d5d82_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_000815b2980077e6_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1459,11 +1459,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_bcb15600c40d5d82_EOF + GH_AW_MCP_CONFIG_000815b2980077e6_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_055bb572ad1f6e2a_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_ad20b95fe1148033_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1473,7 +1473,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_055bb572ad1f6e2a_EOF + GH_AW_CODEX_SHELL_POLICY_ad20b95fe1148033_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 8f413536903..bb119e7f798 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8261e0cbe4fc6782cda78b89c3f2ac0e799d9e4aebb7926dd77563bd754bfc57","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -467,7 +467,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 060e8e62486..c381e6fd5ec 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4e3bb608c02338d05b3bc3a48474524333012715c190e5ab36333a06f1b760e5","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -508,7 +508,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 922a35e4b6b..67f210f6db7 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6518571ac55954cc4dd9b5487832cd986617a9b7082d641b9c48ee3cdadfc00f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -485,7 +485,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-geo-optimizer.lock.yml b/.github/workflows/daily-geo-optimizer.lock.yml index bfb016f26aa..3e3a11a6414 100644 --- a/.github/workflows/daily-geo-optimizer.lock.yml +++ b/.github/workflows/daily-geo-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"138fc20b466663725030b55cee9023bff26aacf17edb99ece01ecf3f8cf79ca6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"34e114876b0b11c390a56381ad16ebd13914f8d5","version":"v4"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a26af69be951a213d495a4c3e4e4022e16d87065","version":"v5"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"34e114876b0b11c390a56381ad16ebd13914f8d5","version":"v4"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a26af69be951a213d495a4c3e4e4022e16d87065","version":"v5"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -437,7 +437,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml index c7ba6e24bb0..ee111328e30 100644 --- a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b648007715aade2e1cb3ebdba89093f99a3aff5baa75898e79f1fc725b9d20f9","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","GRAFANA_SERVICE_ACCOUNT_TOKEN","GRAFANA_URL"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"grafana/mcp-grafana","digest":"sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090","pinned_image":"grafana/mcp-grafana@sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","GRAFANA_SERVICE_ACCOUNT_TOKEN","GRAFANA_URL"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"grafana/mcp-grafana","digest":"sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090","pinned_image":"grafana/mcp-grafana@sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -433,7 +433,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-hippo-learn.lock.yml b/.github/workflows/daily-hippo-learn.lock.yml index 1732f7e0fa9..c2631b7dca1 100644 --- a/.github/workflows/daily-hippo-learn.lock.yml +++ b/.github/workflows/daily-hippo-learn.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"355a8f19782b8e185c7b0be680e584d9bff1fe8fa923cf68da4f213e2801fc39","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -458,7 +458,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index e0b1061d7ff..878d39adebe 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c4032d1b7f650fa07608e813efcc105383b28d7ee6302941224a074aa88ce1dc","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - github/codeql-action/upload-sarif@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4.35.4 # @@ -420,7 +420,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index 831ed0e05eb..f389acd64ad 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"07dab451e41d4310dbf8b072bc6965ee17ed36650305608552de6af84be9f044","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -480,7 +480,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-model-inventory.lock.yml b/.github/workflows/daily-model-inventory.lock.yml index 2fbeea0cdd6..9c2ce0c77e7 100644 --- a/.github/workflows/daily-model-inventory.lock.yml +++ b/.github/workflows/daily-model-inventory.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9e67c109b916d60aad73436244cb58453977994b2fb190e9016e0cbd9221cafd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -449,7 +449,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 553e28abccb..81330548bfc 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"af46f7fc7876692e2c3f4c2d69ab6c1576d366d933903af5e7da5a8b1eb1f77c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -446,7 +446,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 9095d4fa646..94b63cc2462 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"217ffb39c37a58f4a33b0d592dfc583d7b49077984b659d7bfcd42a7228e7350","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -49,8 +49,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -577,7 +577,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index c581626312a..6378bc8c67c 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4af89543a56b3fb0beee3bbb82f3bfdfb2c7a147cc3eb369122b53a67b208bef","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -468,7 +468,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1352,18 +1352,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_ee9c6eb8c9a1d199_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_12b2b5e35da73378_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_ee9c6eb8c9a1d199_EOF + GH_AW_MCP_CONFIG_12b2b5e35da73378_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f1f3325de907e1ad_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_475ff198d622da38_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1374,11 +1374,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_f1f3325de907e1ad_EOF + GH_AW_MCP_CONFIG_475ff198d622da38_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_498853a196f46c7e_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_f277036d1009fb65_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1388,7 +1388,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_498853a196f46c7e_EOF + GH_AW_CODEX_SHELL_POLICY_f277036d1009fb65_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml index 63674468210..cbcf1ce6529 100644 --- a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bdc3c787bb85a49fe957b5a5190d0cb8950888a866b55cdbbef993a5c2cde1d8","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -431,7 +431,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index 84ad70343e6..fbe870f9deb 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"094b59faf7df2201631ea1b6dd01f26a169dd58d40a732381823a482bc5542c1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -478,7 +478,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 9896bf694af..ba80a89ed1e 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"045264000689ed270b8e2941cdf5698ac8884a9f5e603c3bc0717fe93924a511","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 47e48fc48a7..4148c5b5db3 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2c64b893f61f33a9d3605485d8987044cfbf4bb3317ee94a7ec7eda27618558d","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -49,8 +49,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -502,7 +502,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 9f5e48d16a1..64dc080c350 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"704939c0e3ba029bc3f5011dc82b4330659f1e7b4c73704c812fc5204d1fe25b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -471,7 +471,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index 3f245613965..e919c496a6b 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"69b3c1582a106c49b8603957bc548aea35822941589ac8ccd20d96298891d6a6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -424,7 +424,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index 00b52699a60..56d4694072b 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"90a30e18afa62d8695f38c1e41cb38c0d4ab5f7b5e2daa6f7596fc3501b4bc48","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -502,7 +502,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index 5ab7128fb20..fb6a6ccd9cf 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c5b938f024d076d342904dc6efbdb8aae0b76d8002f38b088f6df14b451cd15f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -424,7 +424,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index 074c2e71723..bd5d009a6f7 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"196f0edb92cff10bf32778bf8c9d9c015319b2650be9b3abf20f586d717e6d1f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -422,7 +422,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-security-observability.lock.yml b/.github/workflows/daily-security-observability.lock.yml index a17dc899f3b..a3a271fae83 100644 --- a/.github/workflows/daily-security-observability.lock.yml +++ b/.github/workflows/daily-security-observability.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a2167ef8cfb9632256a96de886ab40051b28c1bb60e9f38d7e889bcfb6663fbb","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -545,7 +545,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index d299ce66993..2117312beb1 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5ac9d361c9968adc7585ddfe3152c16ae13d0db29c4dc89095c9dcd9a8ccb4e8","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -456,7 +456,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index 83100222936..8fcb9f4e109 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0c944adbbed86e8058cf05e77d572fe07e9b032873c8345a40f140f656487833","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"semgrep/semgrep:latest","digest":"sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2","pinned_image":"semgrep/semgrep:latest@sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"semgrep/semgrep:latest","digest":"sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2","pinned_image":"semgrep/semgrep:latest@sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - github/codeql-action/upload-sarif@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4.35.4 @@ -421,7 +421,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-sentrux-report.lock.yml b/.github/workflows/daily-sentrux-report.lock.yml index 562b89f4c5d..c98da0f65d3 100644 --- a/.github/workflows/daily-sentrux-report.lock.yml +++ b/.github/workflows/daily-sentrux-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"57f90d3b41779f9135ed91c7806b5a3b24ad4e81151629282af4c559e3546c39","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -457,7 +457,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-skill-optimizer.lock.yml b/.github/workflows/daily-skill-optimizer.lock.yml index c8c6c12e726..e804c7c2805 100644 --- a/.github/workflows/daily-skill-optimizer.lock.yml +++ b/.github/workflows/daily-skill-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8baed80cab30b6fa60ebbb1038a94feb13d2db226a0f88effccf65c0e89df0e5","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENROUTER_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENROUTER_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -431,7 +431,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-spdd-spec-planner.lock.yml b/.github/workflows/daily-spdd-spec-planner.lock.yml index 323bff3767b..90f7de692bf 100644 --- a/.github/workflows/daily-spdd-spec-planner.lock.yml +++ b/.github/workflows/daily-spdd-spec-planner.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a6fda12069890cbfe1eabf57a04192dada1eff4a56042469fa58bc614b27d80","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -435,7 +435,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-subagent-optimizer.lock.yml b/.github/workflows/daily-subagent-optimizer.lock.yml index 07e27c4d150..1474d6431d6 100644 --- a/.github/workflows/daily-subagent-optimizer.lock.yml +++ b/.github/workflows/daily-subagent-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"347ff636d58c7fc6f84c126bbff5c091fa2d87f6b169339bd8a4763e8e2cb217","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -476,7 +476,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 441ce5568c1..9d3a9d7ea4e 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"42c3ac70f8caee119d8405ce3ddbf2db614b749ebfb61887dcbc0d520e5b6168","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -433,7 +433,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index 1f61590594c..c1da77d5e56 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a9d49e9717601a3204bc22ced2ecda031a78e0997be1e36df9498a350100686","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -427,7 +427,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index c23df8e4978..d1b6001cb7c 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a1b4906638891c37f97cff781853bc3c3c47b74c60be2d70ac9a32a8758914f4","stop_time":"2026-02-09 04:24:39","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -437,7 +437,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 340e78e7126..42d0f8a03b4 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9376f92dd9b89c18f75fcc9254827b51a7d03ca26ee6829a1d72f03c6e3f0a3d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -491,7 +491,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-token-consumption-report.lock.yml b/.github/workflows/daily-token-consumption-report.lock.yml index ea4ab895630..b843fe8c432 100644 --- a/.github/workflows/daily-token-consumption-report.lock.yml +++ b/.github/workflows/daily-token-consumption-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"284e7dccc0d83300068db2dff53d7b16f88a921fbb7b0a2ee1090a6093e66e51","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -434,7 +434,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 218f787bcc8..f473dc8a2d2 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f91b3427f05490ae394a947b6331c04528f35b5abbbb0154ce790cd026b65cfa","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -419,7 +419,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 663228db32d..4e1cea2ff2f 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"958756b0a2c271e8810d808293d964ee6e088f38f714d31be8ef068e6eb0c8ad","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -455,7 +455,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 161fa563680..4ae9c4f90a9 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"61961a358386061bda72347747d7231f2459d4f4687aa9a06978ed39184908ef","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -562,7 +562,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 4f20d7d4957..a359e976f08 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c9c4220b106989e0e1c36abbade0f5a72fd628f3db3cd2b57bfcdf696e4726eb","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -447,7 +447,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 061c6f540e9..d2f22e07d36 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"fc3e661d1a93526bee9a588cf442990adc55c1be262e479b26177ae199bfd98c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -406,7 +406,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index c4cfed49efe..daff2d8cccb 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d1f3ed89dbddf32cac2701522085502186abd82f727c446a20f461941a95b70c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -410,7 +410,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dependabot-repair.lock.yml b/.github/workflows/dependabot-repair.lock.yml index 7f56c2b7803..34c1de1d458 100644 --- a/.github/workflows/dependabot-repair.lock.yml +++ b/.github/workflows/dependabot-repair.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"aeb9570f2463c17ff8417fd854ec8d450e04b5fee310baa6373b0f7ac7991abf","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -418,7 +418,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/deployment-incident-monitor.lock.yml b/.github/workflows/deployment-incident-monitor.lock.yml index 30112490b0f..041c7cf5983 100644 --- a/.github/workflows/deployment-incident-monitor.lock.yml +++ b/.github/workflows/deployment-incident-monitor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f0ee4f3dda1df2f191e0bb8aa1ee4a6548e965306a958cd60a43ade31fb234c9","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/design-decision-gate.lock.yml b/.github/workflows/design-decision-gate.lock.yml index 595ea4b9d42..7bc925bed84 100644 --- a/.github/workflows/design-decision-gate.lock.yml +++ b/.github/workflows/design-decision-gate.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"02fb0aadf14abfed6ebbdc11282eb39d346335ea1e9292f3c310f39b2661353c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -509,7 +509,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index e2ce0f33e26..702b23c33ef 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"87ea4048d44a01952f8fdeab77e7a4e8dcd93a45a8b337809367614a1d2d5a7e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -472,7 +472,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 52a75b891af..996c9f1f0ac 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cc975ed0d58d799d184035327af359c4a3225a02a95981b5d20c04fae0f857bf","agent_id":"pi","agent_model":"copilot/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -462,7 +462,7 @@ jobs: run: npm install --ignore-scripts -g @mariozechner/pi-coding-agent@0.72.1 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 332a1a49341..96339936eac 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c0bd4ccfb6d49e82fad631dd78e9004c569f02f670b9aa6e0a0b6b40854e038f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -513,7 +513,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 0c97765048b..0cd8b702c31 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ed8540a632f969aaff0d4b38b4f52a400fc9fbe609734ade78bb8e9e9909f85c","strict":true,"agent_id":"copilot"} -# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -406,7 +406,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index f292f1aef7a..233a38d8ff4 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ffe0f07abcaea90386293130cd8039dbc68349bae4371be2c4b1a620e82dd2af","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -436,7 +436,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index 62ada4f1f1d..05145d75cf1 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"374eb94317f73e5985210717fa0560fa9d91c1cf1887b83b82758a5e57e12c82","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -398,7 +398,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 50d303946e9..0e6d6dec430 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f2f8fb097558033c3259111aca743bc19712c3c1bf92746c1ec528d247a34dfa","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -452,7 +452,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1317,18 +1317,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_ccb2c61b31ae10bc_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_c915eb285a3c2554_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_ccb2c61b31ae10bc_EOF + GH_AW_MCP_CONFIG_c915eb285a3c2554_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_981076083d6a13de_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_89f72dccfae70dbe_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1339,11 +1339,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_981076083d6a13de_EOF + GH_AW_MCP_CONFIG_89f72dccfae70dbe_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_0e17004ea1b41860_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_a86d8b4a55d4a4d1_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1353,7 +1353,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_0e17004ea1b41860_EOF + GH_AW_CODEX_SHELL_POLICY_a86d8b4a55d4a4d1_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 57786792457..25343017bbe 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6f1f0364b2a08f74ad20e02011202561a642785b7763aaf45ce1b7d4d3be642d","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -398,7 +398,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index 350fff73e96..ac2065de17c 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"71f8f6644a93c7c7bf7ed5699b5e496b8ec31ebde8437092119a983efe3d70bb","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -463,7 +463,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 34a32358a96..4b50a9ac832 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a88eb523f6e675523fba8343a7281c42a0fbbbfe53a00a519df046df90a6685d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -473,7 +473,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1363,7 +1363,7 @@ jobs: GH_HOST="${GH_HOST#http://}" echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Create issue on test failure - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: script: | await github.rest.issues.create({ diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 1035bcb30e4..9158e8840c5 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0afff0744c76852dc9b362a8325209f35a92832f9646c54ceaef481f40099cfa","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -400,7 +400,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index f6aeade2dc7..00f2c8f0b2a 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3dc690e7156f467b8f1c8af7f65395ddafd2b390b480294673cd3f6680ad3b81","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -412,7 +412,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index c709eb0e6cf..533519919c8 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"74c0dd6eb2747949a248ae1da0b18dbab08091fb90c7b788c1db5310f3511b47","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -476,7 +476,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 690c581196a..c3004774f4e 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"814816a5777f95b7c3ab40322e1973233399700e882e0d1cf28b883848f47735","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -454,7 +454,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index df066f555a0..563ab0c0b5a 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"340833dcf0790917dc5c1ddb6ca84087af54b11249edf72c80b29d85835f642c","strict":true,"agent_id":"copilot","agent_model":"gpt-4.1"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -429,7 +429,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 9a76fa1a745..f701d7adca6 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"74ffa39f24050cb25a0f3bf3e72c0abb9e0632f6607ba0d92cb59e500a9241c1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -515,7 +515,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 22481f1184f..0a43f6e40bf 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5d2bfd8562346a117204579c663a2ef888d447c79cf44f049c43c9f3e052751b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -489,7 +489,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 4443355c384..621a78f08f5 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"819760b3fd150d82d49a3686b6c9cfc724f316156a08ea5798a4c766045150b9","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -452,7 +452,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index b8af607e5a6..c120a8fcf1f 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f87f0facf4a4f63a149dc272cd97dc7a236171c6397681572ccd2e2f1d0fa63b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -418,7 +418,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index ae8843739cf..09e6f9b083b 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0d8f13bc0d4b795edde4cadbc774783430263afa5660f19d0d516c029fe9d9f1","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -437,7 +437,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/hippo-embed.lock.yml b/.github/workflows/hippo-embed.lock.yml index 4e37a2bc95a..73abbea71df 100644 --- a/.github/workflows/hippo-embed.lock.yml +++ b/.github/workflows/hippo-embed.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"495974c3d588277708a1f57798de873b11f8dda73a9b5c77db6562109e7f6d4b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -433,7 +433,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 4f2b1598d9f..2a3f2068980 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"426f66db494453f3e49396a8e2b342b5a5f7579d10f7590f401886df0237ed9d","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -458,7 +458,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index a783d689792..fcb6a840db5 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f5e602533686b7583ddc945191bccace86044b081fef89ced495d79dd0b113b6","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index d6134806936..73e6de419d5 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9329c2054bd71919cd82788b2a41b4d98fc079188e3dd7c0ebc46b6bbc534f07","strict":true,"agent_id":"copilot","agent_model":"claude-haiku-4.5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -1749,7 +1749,7 @@ jobs: await main(); - name: Search for candidate issues id: search - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: script: | const { owner, repo } = context.repo; diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index d2ed7967052..820dc189db4 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2bf4d1a013cdb49a5abb01df90afd44179ba4d7f7a87940e767b7b30084e39cd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -441,7 +441,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 96b694cf11c..175e73fb40c 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"daca38c3e8f976010b6c0d94c9f0e16cc6aa5997efa3e9f20f44ebda344d8e4b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -35,8 +35,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -417,7 +417,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 6897e1fbb06..26a98952cd0 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"073a957e93a15d9f5e9845e434ff0d7c131c7c70787269bbec8e59acc15b1fc5","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -448,7 +448,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index d501362f4fd..a8613c144aa 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2f5ff1d393abf1fa9520cf7dc0a0289cd1f0773d75a398ceae002ebb2bd59b1c","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["AZURE_CLIENT_ID","AZURE_CLIENT_SECRET","AZURE_TENANT_ID","BRAVE_API_KEY","CONTEXT7_API_KEY","COPILOT_GITHUB_TOKEN","DD_API_KEY","DD_APPLICATION_KEY","DD_SITE","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","NOTION_API_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY","SLACK_BOT_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"astral-sh/setup-uv","sha":"08807647e7069bb48b6ef5acd8ec9567f424441b","version":"v8.1.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"mcp/arxiv-mcp-server","digest":"sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e","pinned_image":"mcp/arxiv-mcp-server@sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"mcp/context7","digest":"sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836","pinned_image":"mcp/context7@sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"mcp/memory","digest":"sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f","pinned_image":"mcp/memory@sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"python:alpine","digest":"sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116","pinned_image":"python:alpine@sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116"}]} +# gh-aw-manifest: {"version":1,"secrets":["AZURE_CLIENT_ID","AZURE_CLIENT_SECRET","AZURE_TENANT_ID","BRAVE_API_KEY","CONTEXT7_API_KEY","COPILOT_GITHUB_TOKEN","DD_API_KEY","DD_APPLICATION_KEY","DD_SITE","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","NOTION_API_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY","SLACK_BOT_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"astral-sh/setup-uv","sha":"08807647e7069bb48b6ef5acd8ec9567f424441b","version":"v8.1.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"mcp/arxiv-mcp-server","digest":"sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e","pinned_image":"mcp/arxiv-mcp-server@sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"mcp/context7","digest":"sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836","pinned_image":"mcp/context7@sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"mcp/memory","digest":"sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f","pinned_image":"mcp/memory@sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"python:alpine","digest":"sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116","pinned_image":"python:alpine@sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -73,8 +73,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -581,7 +581,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1881,7 +1881,7 @@ jobs: find "${RUNNER_TEMP}/gh-aw/safe-jobs/" -type f -print echo "GH_AW_AGENT_OUTPUT=${RUNNER_TEMP}/gh-aw/safe-jobs/agent_output.json" >> "$GITHUB_OUTPUT" - name: Add comment to Notion page - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_AGENT_OUTPUT: ${{ steps.setup-safe-job-env.outputs.GH_AW_AGENT_OUTPUT }} NOTION_API_TOKEN: ${{ secrets.NOTION_API_TOKEN }} @@ -2012,7 +2012,7 @@ jobs: find "${RUNNER_TEMP}/gh-aw/safe-jobs/" -type f -print echo "GH_AW_AGENT_OUTPUT=${RUNNER_TEMP}/gh-aw/safe-jobs/agent_output.json" >> "$GITHUB_OUTPUT" - name: Post message to Slack - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_AGENT_OUTPUT: ${{ steps.setup-safe-job-env.outputs.GH_AW_AGENT_OUTPUT }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index 5210cef7366..6749362d159 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7472e1468572f13c617e2ab441315a16100c1bd85d5b8912bcde3fa2a901b66a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -464,7 +464,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index 5c685fd7f24..ac3b7c07df9 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f414287121dfeeadab158f42cfd62bf397760a0176d1433e44c1f136fd338487","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -474,7 +474,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 084f0843468..bb03e3ebc2a 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b75febf98ad793131a4ed72971d2c097d62c42dc6cfb6c7f8d20a4cd35af118c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","NOTION_API_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","NOTION_API_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -411,7 +411,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1278,7 +1278,7 @@ jobs: find "${RUNNER_TEMP}/gh-aw/safe-jobs/" -type f -print echo "GH_AW_AGENT_OUTPUT=${RUNNER_TEMP}/gh-aw/safe-jobs/agent_output.json" >> "$GITHUB_OUTPUT" - name: Add comment to Notion page - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_AGENT_OUTPUT: ${{ steps.setup-safe-job-env.outputs.GH_AW_AGENT_OUTPUT }} NOTION_API_TOKEN: ${{ secrets.NOTION_API_TOKEN }} diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 52b89965d50..17f5f38a014 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"93ad44f5e25a9e4c4b2cd5f9b806adf10d907a6e90fa515046e52e3141a9b9d0","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -523,7 +523,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 3409f15a4a5..b441e7631d8 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"95d8755a3869f35541544f889f6e2c18d9f097f240d34cfcd647ca20c109a3e2","strict":true,"agent_id":"copilot","agent_model":"gpt-5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -513,7 +513,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index edcf089d622..63671b91c40 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"081c6e17a3486eb1936f18df4f69530d603dccc6c1a60314fafc98d737d32fec","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -51,8 +51,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -548,7 +548,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index e3d07ed8c82..ecb249307e0 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e5d9427ba230e322b65568dd0ad2ef01fdc321e58d0dac9c9dd4bba8fd17c58b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -489,7 +489,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/refactoring-cadence.lock.yml b/.github/workflows/refactoring-cadence.lock.yml index 43f066df2ad..8ecdc9bfb28 100644 --- a/.github/workflows/refactoring-cadence.lock.yml +++ b/.github/workflows/refactoring-cadence.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9e58276097ec44d9106f8bd305db81984e76f516b1458bef14e1b7726c5194c4","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -436,7 +436,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 733aa9172bd..124cda2ec40 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7e6be1887ca084a319f998030ae36597ae6412e4dfff39c5eff927a3454755a8","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"anchore/sbom-action","sha":"e22c389904149dbc22b58101806040fa8d37a610","version":"v0.24.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/login-action","sha":"4907a6ddec9925e35a0a9e82d7399ccc52663121","version":"v4.1.0"},{"repo":"docker/metadata-action","sha":"030e881283bb7a6894de51c315a6bfe6a94e05cf","version":"v6.0.0 (source v6)"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0 (source v4)"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"anchore/sbom-action","sha":"e22c389904149dbc22b58101806040fa8d37a610","version":"v0.24.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/login-action","sha":"4907a6ddec9925e35a0a9e82d7399ccc52663121","version":"v4.1.0"},{"repo":"docker/metadata-action","sha":"030e881283bb7a6894de51c315a6bfe6a94e05cf","version":"v6"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,15 +37,15 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - anchore/sbom-action@e22c389904149dbc22b58101806040fa8d37a610 # v0.24.0 # - docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 # - docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 -# - docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 (source v6) -# - docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 (source v4) +# - docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 +# - docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 # # Container images used: # - ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770 @@ -440,7 +440,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1111,7 +1111,7 @@ jobs: persist-credentials: false - name: Compute Release Config id: compute_config - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: script: | const releaseType = context.payload.inputs.release_type; @@ -1290,7 +1290,7 @@ jobs: env: RELEASE_TAG: ${{ needs.config.outputs.release_tag }} - name: Setup Docker Buildx (pre-validation) - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 (source v4) + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 - name: Build Docker image (validation only) uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: @@ -1426,7 +1426,7 @@ jobs: sbom.cdx.json retention-days: 90 - name: Setup Docker Buildx - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 (source v4) + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 - name: Log in to GitHub Container Registry uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 with: @@ -1435,7 +1435,7 @@ jobs: username: ${{ github.actor }} - name: Extract metadata for Docker id: meta - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 (source v6) + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 with: images: ghcr.io/${{ github.repository }} tags: | diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index e0f1f82c353..27029bec1ef 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"94fba79d96ce26868d3b4fcd27952cbd179311d5e20a5a2183e36a09a7fafd64","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -454,7 +454,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index aebd899122d..d8e1a74fe89 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f389c2a9031061854dfee8b6ae6223249fd22837021a6749555921bc72879951","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -407,7 +407,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index fd40154b635..d9f8b676627 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"446c67add1aad2662e6c77760effaf69df925d4d725afcd8394aa38d1ca95b46","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -462,7 +462,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index 466e033e02e..ae09e4a0d44 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c98daff2813b75da8bcc7a714993df6c9d9c7d4279a6e59ad2281053d9c75fac","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -415,7 +415,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 163f2aeb90a..c4490b4564e 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6d37bf441affc922cc4c79aa2eb36463bdf5056504e31e4f0769f4785485b4af","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -494,7 +494,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 5f071f24109..8205bef7e56 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e75f5e7a9527ecb2304b5af3e72ea774d90b82877875cdf56a6c5eadb4ece05a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -453,7 +453,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index feaffa06679..af7b06cac1a 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c65daea58e1e9d68865e903464874ecc70f8e801046cb24f632013017efc10ec","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -35,8 +35,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1245,18 +1245,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_20822f946175d655_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_6bc66bac4430d532_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_20822f946175d655_EOF + GH_AW_MCP_CONFIG_6bc66bac4430d532_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_60b5919884598875_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d9641d6a3ab016d5_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1267,11 +1267,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_60b5919884598875_EOF + GH_AW_MCP_CONFIG_d9641d6a3ab016d5_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_70fb91392cc17fb6_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_4aa3a1f0b31d2e97_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1281,7 +1281,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_70fb91392cc17fb6_EOF + GH_AW_CODEX_SHELL_POLICY_4aa3a1f0b31d2e97_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index 7b2695460fa..d3d00715ded 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"89d412f3c98e41897ede674da365bb039e3e784c9cd5abf6f8b862916658b7bd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -445,7 +445,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index b2f7b16a9e0..4cde81f25b4 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2ff10fe9f2dcb04d4c2a6ecb05897097f4c240d8cc6b495d9e06e9e197b7249a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -446,7 +446,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index 8a413fa58b2..b288c588146 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3691dd3be2a20f98a10ac7c34ed8ad1d01036cde3d57e6f577ff93380e511947","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -487,7 +487,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index 5e701d8c590..4dd4b24a974 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8462e03270163e1215840c10dda9f2a3c99344971640ebf816d283fd3d8787df","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -474,7 +474,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index ff244b3700a..d26d4b58f05 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"842cc3cd9a4047674f2b02570a60538ed72591f5941ee92f5d3a9e82a1024d04","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -442,7 +442,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1292,18 +1292,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_6aa272a56a2f17e2_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_8d70d5e3cf85c1b0_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_6aa272a56a2f17e2_EOF + GH_AW_MCP_CONFIG_8d70d5e3cf85c1b0_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ddbc67728fb6f7e3_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c9ddc4ef7d6f9c33_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1314,11 +1314,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_ddbc67728fb6f7e3_EOF + GH_AW_MCP_CONFIG_c9ddc4ef7d6f9c33_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_39912a1c166efa64_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_578382db2a77fa69_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1328,7 +1328,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_39912a1c166efa64_EOF + GH_AW_CODEX_SHELL_POLICY_578382db2a77fa69_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/smoke-ci.lock.yml b/.github/workflows/smoke-ci.lock.yml index 9dd22c7050f..c2e55df6415 100644 --- a/.github/workflows/smoke-ci.lock.yml +++ b/.github/workflows/smoke-ci.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"059ab6ec82199369fa23ae6d33a5251bfd171ab7f51874d5564c5ced92e42cf3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -474,7 +474,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 7a11477a23e..710ca688b05 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"927f9f6b9f5efe873cfec5e4ba73745d960ede166f8f3b5174eb1579d1fadde4","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -50,8 +50,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -951,7 +951,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 13ec8d38383..b06f29cbd02 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5654399396a1259c6dd48c4a40a088432604138bc7c3df639ce30480fcb35914","agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions-ecosystem/action-add-labels","sha":"c96b68fec76a0987cd93957189e9abd0b9a72ff1","version":"v1.1.3"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions-ecosystem/action-add-labels","sha":"c96b68fec76a0987cd93957189e9abd0b9a72ff1","version":"v1.1.3"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,10 +48,10 @@ # - actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 +# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -569,7 +569,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1524,7 +1524,7 @@ jobs: GH_AW_INFO_VERSION: "0.128.0" - name: Report TruffleHog secret scan failure if: always() && needs.trufflehog_scan.result == 'failure' && needs.trufflehog_scan.outputs.secrets_found == 'true' - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} GH_AW_TRUFFLEHOG_SECRETS_LOCATIONS: ${{ needs.trufflehog_scan.outputs.secrets_locations }} @@ -1825,18 +1825,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d545c9e0d5eff798_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_99053b2ac6a26145_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_d545c9e0d5eff798_EOF + GH_AW_MCP_CONFIG_99053b2ac6a26145_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_0bb54771abb275d5_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_746a1bc8fa365df9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1847,11 +1847,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_0bb54771abb275d5_EOF + GH_AW_MCP_CONFIG_746a1bc8fa365df9_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_0d4e277ae2519615_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_e491394fcf2927b3_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1861,7 +1861,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_0d4e277ae2519615_EOF + GH_AW_CODEX_SHELL_POLICY_e491394fcf2927b3_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -2119,21 +2119,21 @@ jobs: echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Download agent output artifact id: download-agent - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: agent path: /tmp/gh-aw continue-on-error: true - name: Download cache-memory artifact id: download-cache-memory - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: cache-memory path: /tmp/gh-aw/cache-memory continue-on-error: true - name: Download repo-memory artifact id: download-repo-memory - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: repo-memory-default path: /tmp/gh-aw/repo-memory/default diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index cf713aa380b..934d491447e 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"751309f3333db9e3c89c7c683f347a10b616a5ae0bf1ca5b4733b0f409b235ed","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -593,7 +593,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 5a95bb19a4e..10919ef76bf 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"55e430e79f4d85abfe9d63d9335d30f2e95aeb486662520e010facf5d69dde96","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -470,7 +470,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-crush.lock.yml b/.github/workflows/smoke-crush.lock.yml index 8f3977fb148..59f3b7d5cad 100644 --- a/.github/workflows/smoke-crush.lock.yml +++ b/.github/workflows/smoke-crush.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"329b4b5586c568be84404cdf0a490fa72992b5c607e0903b8079e0d4440a5779","strict":true,"agent_id":"crush","agent_model":"anthropic/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -463,7 +463,7 @@ jobs: run: crush --version - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index 28c652be3e2..210fd6a1d35 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"85b5a3b65ef87996cdaedc38508224635f2689eed87b8326c08ce9b16622fbba","strict":true,"agent_id":"gemini"} -# gh-aw-manifest: {"version":1,"secrets":["GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -504,7 +504,7 @@ jobs: run: npm install --ignore-scripts -g @google/gemini-cli@0.39.1 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index de622f54548..279b0835a05 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b1003f9978f885f853d300b2ad987e8b1aea3890aee421dabd0fa09cb4b971a6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -475,7 +475,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-opencode.lock.yml index b89361209c0..9ef42f107dd 100644 --- a/.github/workflows/smoke-opencode.lock.yml +++ b/.github/workflows/smoke-opencode.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c8da9944790bcbc2ce4f322523e6ed295e10f8bfff03035b055507efe7d9d265","strict":true,"agent_id":"opencode","agent_model":"copilot/gpt-5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -482,7 +482,7 @@ jobs: run: npm install --ignore-scripts -g opencode-ai@1.2.14 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-pi.lock.yml b/.github/workflows/smoke-pi.lock.yml index ca93745f543..7cc31d24cd8 100644 --- a/.github/workflows/smoke-pi.lock.yml +++ b/.github/workflows/smoke-pi.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b1e013b6e840bc7549cb0c9476704b60abe2801552255b4b67f36139050107ac","strict":true,"agent_id":"pi","agent_model":"copilot/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -507,7 +507,7 @@ jobs: run: npm install --ignore-scripts -g @mariozechner/pi-coding-agent@0.72.1 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index ee400c1ff94..53fd9f8175d 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8bcae22e790c498a4d0c4a24fc23384ec7be4e39f2bbf10b06bbed77bb070c0f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -477,7 +477,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-service-ports.lock.yml b/.github/workflows/smoke-service-ports.lock.yml index 5d1cd98f967..61fffc78c70 100644 --- a/.github/workflows/smoke-service-ports.lock.yml +++ b/.github/workflows/smoke-service-ports.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a5b657ee8f7595a2acbdb3d5278db112c5c657f57c878acb9b83cb527825d81","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -439,7 +439,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index eada708b183..90cdff8a810 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f0607fe6bde2646e0a6787ae7b8e9f1720e71f24ae1e15aacf19bf179a7df25b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -471,7 +471,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index 167e5fdf3fe..59e001db9dc 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7ad2a388d1b7febb011bc0d2e8c59f7ca477223d177668e831ae6d61cd6ecbdd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-dotnet","sha":"c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7","version":"v5.2.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-java","sha":"be666c2fcd27ec809703dec50e508c2fdc7f6654","version":"v5.2.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-dotnet","sha":"c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7","version":"v5.2.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-java","sha":"be666c2fcd27ec809703dec50e508c2fdc7f6654","version":"v5.2.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 @@ -486,7 +486,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index e1921705756..416659e9726 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5b785f55ba2a16a818befb3d75af99bead1554141d32d0929c26c762b0075dd6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -501,7 +501,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index 5c130687b03..f54ad4f3ed1 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ddb8e05964bc32fe984b90aae319b938e41cc7f0bb696763c9135f9c5a6d8d3d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -476,7 +476,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index 6c9269769a0..a2189bd5748 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cd8e97a7f615e317b47964a4af22b5e68f1cf03782227c2b3ce30fec184155df","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -498,7 +498,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/spec-enforcer.lock.yml b/.github/workflows/spec-enforcer.lock.yml index e8f24a4cb80..0bf207f0c07 100644 --- a/.github/workflows/spec-enforcer.lock.yml +++ b/.github/workflows/spec-enforcer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bc73e1af80d6d6839bfaea73c5b82fa6487f03d8f0967f7be1d6365e5637ca0c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -450,7 +450,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/spec-extractor.lock.yml b/.github/workflows/spec-extractor.lock.yml index 86b9e19005b..bee36044d5b 100644 --- a/.github/workflows/spec-extractor.lock.yml +++ b/.github/workflows/spec-extractor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"30d0500d747927eecd78ada9b4bd489183deac8719d8b3c4eef4a0938c475c5c","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -470,7 +470,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/spec-librarian.lock.yml b/.github/workflows/spec-librarian.lock.yml index cdc16ea5977..909375f05fb 100644 --- a/.github/workflows/spec-librarian.lock.yml +++ b/.github/workflows/spec-librarian.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1c91a70d45517990f0f5862858bdc81137f00d8b0f20ce5e5609ca567f80cf19","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -452,7 +452,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/stale-pr-cleanup.lock.yml b/.github/workflows/stale-pr-cleanup.lock.yml index c16b0c3275e..e2042aa009d 100644 --- a/.github/workflows/stale-pr-cleanup.lock.yml +++ b/.github/workflows/stale-pr-cleanup.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"07e071eb8a3e78f3eecb8071e562e1f8291f76cb7a7610e5e007f8d4d12f0a43","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 0238c6dee5d..6df6c0eea1f 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3d486f087a351782a6e354e06c2f5c86e7df9c759febbd6215f239c91d000693","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -488,7 +488,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index 19d773c93bb..29229491b7f 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"682df555d5bd68ce801fca0dc88cbb7c1ebe9925c2d9a5bea321de5c968627dc","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -35,8 +35,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -426,7 +426,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index cd0ef80e35a..14c5c405352 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"416a2b1dd2dc494f163fa369a64b572475965c2933eb7030290a6d8fe9df011e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -403,7 +403,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 552788e54d0..47ff0617c96 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"61bb87cf8f4e4e45e119750e0136fb0c05c618bf29bcc15bd86d47ec6905e991","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"super-linter/super-linter","sha":"9e863354e3ff62e0727d37183162c4a88873df41","version":"v8.6.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"super-linter/super-linter","sha":"9e863354e3ff62e0727d37183162c4a88873df41","version":"v8.6.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - super-linter/super-linter@9e863354e3ff62e0727d37183162c4a88873df41 # v8.6.0 @@ -448,7 +448,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 546698fc685..1c24ccdc5a3 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"445f70b11f0886bd1c24002586a77f498a963b9233aefc4a70a4144a06fc650a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -492,7 +492,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index b3ef8430693..1a0c54358fb 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1923db5027cf5c4c2f9ce83b1b767a9756d25feb8d81ad6e92ff73b11547d266","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -460,7 +460,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index c6ef7607efc..a3a3892b624 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6b68525cbb541559cacf99aa9becde57e6afaab123dbfb060e4a6bf039ef36de","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -424,7 +424,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index 521acdec0eb..7c49851edb5 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4bd8c07c60ebeaf4e44c563129d014bb1e8565000ce66a6a74cea2bc733a6c70","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -395,7 +395,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index 4864284a24d..864e94c255e 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"02b69e9f07f723d11b441d7a8ef964ac468aeab7cf843b342941455495f44ae6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -395,7 +395,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-quality-sentinel.lock.yml b/.github/workflows/test-quality-sentinel.lock.yml index 6fa64ddcbd7..c65496a8f5c 100644 --- a/.github/workflows/test-quality-sentinel.lock.yml +++ b/.github/workflows/test-quality-sentinel.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8e1b45ac0e2c883e76a948893cb57390962ce64083cf2bf9212463384ccdf65e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -457,7 +457,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index b3695278e17..bba06058b79 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c1289924ef5c241c6bf7aede9e9822e6fe5e48cd5d6242834bb75725a19e6fd8","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 95ce7c41349..498d78b4693 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"577ea8cfb6c7deceadea08c2ab5886fe7d53ab7036eb5fcd25781786abb1faf6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -492,7 +492,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index ae23f792f6d..f2282b7c36d 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c2cc60d3f0b2e08c4003a88f1111c6586c8aa381c9fbcd93d1c18d438ea2c500","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -461,7 +461,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index 3857edce7e4..8894dd13e41 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b32a03269d4de4c56b7c2bcc20c1687c2c9fc6c07598ce34c4572755cf9cf991","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -423,7 +423,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 655b8c7c424..0ee2030967a 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5b9d9a78fbf9a3ce2ea223df3fcc3202f958e5af92f92f7073887dc44f803481","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -518,7 +518,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index 67c87f197d0..7f4c9c97f10 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"28cee4b26065d99e23a77c48b6badda1a9a809b35234c3bf2a5ed5da1fa8007a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -425,7 +425,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index bbaa1ab6497..e01a981c2a8 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c7c27fdcf6914726f356b5ef809f5706a244156210ede52f506cd9b415db845f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -420,7 +420,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/visual-regression-checker.lock.yml b/.github/workflows/visual-regression-checker.lock.yml index 85efe5f24dc..54ce4d5e1d1 100644 --- a/.github/workflows/visual-regression-checker.lock.yml +++ b/.github/workflows/visual-regression-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"de518c787427356d7922ca986fccae0ca6b733c7e08261ac451e190bb36973df","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -31,11 +31,11 @@ # - GITHUB_TOKEN # # Custom actions used: +# - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 -# - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 (source v6) # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -384,7 +384,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 (source v6) + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false - name: Setup Node.js @@ -455,7 +455,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index 2e8fc4d4088..b174f0ab710 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"445a084c156b33cd81f31a85d1ea641e71936cc3ca336cad6297150c3813cf3f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -414,7 +414,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 0eda10a628c..c5178602ddf 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bc9fc36b154931308c4fc86cdc642f3fe5ff697072e4a39bd18724cc88dd40ac","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -438,7 +438,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index 56bb8a63232..6449666e49d 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c4d3ae709d0b09bf46341c2e6f1f18e49a86247b10f23da62fe5336d26267505","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -443,7 +443,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index 826a69effa5..6a9cf78ea3f 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b19e4f9fbc41efd6e4e858ca65aaa13884c32d90a7e8c53f823aff8067b7bbc1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -374,7 +374,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - name: Build workflow index - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 with: script: "const fs = require('fs');\nconst path = require('path');\n\nconst workflowDir = '.github/workflows';\nconst entries = fs.readdirSync(workflowDir, { withFileTypes: true });\nconst index = [];\n\nfor (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {\n if (!entry.isFile() || !entry.name.endsWith('.md') || entry.name.startsWith('.')) {\n continue;\n }\n\n const workflowPath = path.join(workflowDir, entry.name);\n const content = fs.readFileSync(workflowPath, 'utf8');\n const frontmatterMatch = content.match(/^---\\n([\\s\\S]*?)\\n---/);\n const frontmatter = frontmatterMatch ? frontmatterMatch[1] : '';\n\n const imports = Array.from(frontmatter.matchAll(/^\\s*-\\s+(shared\\/\\S+)/gm), (m) => m[1]);\n let engine = null;\n const frontmatterLines = frontmatter.split('\\n');\n let inEngineBlock = false;\n\n for (const line of frontmatterLines) {\n if (!inEngineBlock) {\n if (/^engine:\\s*$/.test(line)) {\n inEngineBlock = true;\n }\n continue;\n }\n\n if (!/^[ \\t]/.test(line)) {\n break;\n }\n\n const engineIDMatch = line.match(/^\\s*id:\\s*(\\S+)/);\n if (engineIDMatch) {\n engine = engineIDMatch[1];\n break;\n }\n }\n\n index.push({\n file: entry.name,\n path: workflowPath,\n imports,\n engine,\n has_github_tools: frontmatter.includes('github:'),\n has_safe_outputs: frontmatter.includes('safe-outputs:'),\n frontmatter_preview: frontmatter.slice(0, 400)\n });\n}\n\nfs.mkdirSync('/tmp/gh-aw/agent', { recursive: true });\nfs.writeFileSync('/tmp/gh-aw/agent/workflow-index.json', JSON.stringify(index, null, 2) + '\\n', 'utf8');\ncore.info(`Indexed ${index.length} workflows`);\n" @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/pkg/workflow/mcp_property_validation.go b/pkg/workflow/mcp_property_validation.go index 6dcc047f662..012360d7e7c 100644 --- a/pkg/workflow/mcp_property_validation.go +++ b/pkg/workflow/mcp_property_validation.go @@ -42,10 +42,11 @@ func validateMCPRequirements(toolName string, mcpConfig map[string]any, toolConf if hasType { // Explicit type provided - validate it's a string - if _, ok := mcpType.(string); !ok { + var ok bool + typeStr, ok = mcpType.(string) + if !ok { return fmt.Errorf("tool '%s' mcp configuration 'type' must be a string, got %T. Valid types per MCP Gateway Specification: stdio, http. Note: 'local' is accepted for backward compatibility and treated as 'stdio'.\n\nExample:\ntools:\n %s:\n type: \"stdio\"\n command: \"node server.js\"\n\nSee: %s", toolName, mcpType, toolName, constants.DocsToolsURL) } - typeStr = mcpType.(string) mcpPropertyValidationLog.Printf("Tool %s: explicit MCP type=%s", toolName, typeStr) } else { // Infer type from presence of fields From 3a71e13a6f08186832301b99007924407f3af462 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 02:49:33 -0700 Subject: [PATCH 03/16] fix: propagate context in MCPRegistryClient HTTP requests (#30953) --- .github/workflows/ab-testing-advisor.lock.yml | 6 ++-- .github/workflows/ace-editor.lock.yml | 8 +++--- .../agent-performance-analyzer.lock.yml | 6 ++-- .../workflows/agent-persona-explorer.lock.yml | 6 ++-- .../workflows/api-consumption-report.lock.yml | 6 ++-- .github/workflows/approach-validator.lock.yml | 6 ++-- .github/workflows/archie.lock.yml | 6 ++-- .../workflows/architecture-guardian.lock.yml | 6 ++-- .github/workflows/artifacts-summary.lock.yml | 6 ++-- .github/workflows/audit-workflows.lock.yml | 6 ++-- .../aw-failure-investigator.lock.yml | 6 ++-- .github/workflows/blog-auditor.lock.yml | 6 ++-- .github/workflows/bot-detection.lock.yml | 8 +++--- .github/workflows/brave.lock.yml | 6 ++-- .../breaking-change-checker.lock.yml | 6 ++-- .github/workflows/changeset.lock.yml | 6 ++-- .github/workflows/ci-coach.lock.yml | 6 ++-- .github/workflows/ci-doctor.lock.yml | 6 ++-- .../claude-code-user-docs-review.lock.yml | 6 ++-- .../cli-consistency-checker.lock.yml | 6 ++-- .../workflows/cli-version-checker.lock.yml | 6 ++-- .github/workflows/cloclo.lock.yml | 6 ++-- .../workflows/code-scanning-fixer.lock.yml | 6 ++-- .github/workflows/code-simplifier.lock.yml | 6 ++-- .../codex-github-remote-mcp-test.lock.yml | 6 ++-- .../commit-changes-analyzer.lock.yml | 6 ++-- .../constraint-solving-potd.lock.yml | 6 ++-- .../workflows/copilot-agent-analysis.lock.yml | 6 ++-- .../copilot-cli-deep-research.lock.yml | 6 ++-- .github/workflows/copilot-opt.lock.yml | 6 ++-- .../copilot-pr-nlp-analysis.lock.yml | 6 ++-- .../copilot-pr-prompt-analysis.lock.yml | 6 ++-- .../copilot-session-insights.lock.yml | 6 ++-- .../workflows/copilot-token-audit.lock.yml | 6 ++-- .../copilot-token-optimizer.lock.yml | 6 ++-- .github/workflows/craft.lock.yml | 6 ++-- .../daily-architecture-diagram.lock.yml | 6 ++-- .../daily-assign-issue-to-user.lock.yml | 6 ++-- ...strostylelite-markdown-spellcheck.lock.yml | 6 ++-- ...daily-aw-cross-repo-compile-check.lock.yml | 6 ++-- .../daily-cache-strategy-analyzer.lock.yml | 18 ++++++------ .../daily-caveman-optimizer.lock.yml | 6 ++-- .github/workflows/daily-choice-test.lock.yml | 6 ++-- .../workflows/daily-cli-performance.lock.yml | 8 +++--- .../workflows/daily-cli-tools-tester.lock.yml | 6 ++-- .github/workflows/daily-code-metrics.lock.yml | 6 ++-- .../daily-community-attribution.lock.yml | 6 ++-- .../workflows/daily-compiler-quality.lock.yml | 6 ++-- ...ly-compiler-threat-spec-optimizer.lock.yml | 6 ++-- .github/workflows/daily-doc-healer.lock.yml | 6 ++-- .../daily-experiment-report.lock.yml | 6 ++-- .github/workflows/daily-fact.lock.yml | 18 ++++++------ .github/workflows/daily-file-diet.lock.yml | 6 ++-- .../workflows/daily-firewall-report.lock.yml | 6 ++-- .../workflows/daily-function-namer.lock.yml | 6 ++-- .../workflows/daily-geo-optimizer.lock.yml | 6 ++-- ...fana-otel-instrumentation-advisor.lock.yml | 6 ++-- .github/workflows/daily-hippo-learn.lock.yml | 6 ++-- .../daily-malicious-code-scan.lock.yml | 6 ++-- .../daily-mcp-concurrency-analysis.lock.yml | 6 ++-- .../workflows/daily-model-inventory.lock.yml | 6 ++-- .../daily-multi-device-docs-tester.lock.yml | 6 ++-- .github/workflows/daily-news.lock.yml | 6 ++-- .../daily-observability-report.lock.yml | 18 ++++++------ ...aily-otel-instrumentation-advisor.lock.yml | 6 ++-- .../daily-performance-summary.lock.yml | 6 ++-- .github/workflows/daily-regulatory.lock.yml | 6 ++-- .../daily-rendering-scripts-verifier.lock.yml | 6 ++-- .../workflows/daily-repo-chronicle.lock.yml | 6 ++-- .../daily-safe-output-integrator.lock.yml | 6 ++-- .../daily-safe-output-optimizer.lock.yml | 6 ++-- .../daily-safe-outputs-conformance.lock.yml | 6 ++-- .../workflows/daily-secrets-analysis.lock.yml | 6 ++-- .../daily-security-observability.lock.yml | 6 ++-- .../daily-security-red-team.lock.yml | 6 ++-- .github/workflows/daily-semgrep-scan.lock.yml | 6 ++-- .../workflows/daily-sentrux-report.lock.yml | 6 ++-- .../workflows/daily-skill-optimizer.lock.yml | 6 ++-- .../daily-spdd-spec-planner.lock.yml | 6 ++-- .../daily-subagent-optimizer.lock.yml | 6 ++-- .../daily-syntax-error-quality.lock.yml | 6 ++-- .../daily-team-evolution-insights.lock.yml | 6 ++-- .github/workflows/daily-team-status.lock.yml | 6 ++-- .../daily-testify-uber-super-expert.lock.yml | 6 ++-- .../daily-token-consumption-report.lock.yml | 6 ++-- .../workflows/daily-workflow-updater.lock.yml | 6 ++-- .github/workflows/dead-code-remover.lock.yml | 6 ++-- .github/workflows/deep-report.lock.yml | 6 ++-- .github/workflows/delight.lock.yml | 6 ++-- .github/workflows/dependabot-burner.lock.yml | 6 ++-- .../workflows/dependabot-go-checker.lock.yml | 6 ++-- .github/workflows/dependabot-repair.lock.yml | 6 ++-- .../deployment-incident-monitor.lock.yml | 6 ++-- .../workflows/design-decision-gate.lock.yml | 6 ++-- .github/workflows/dev-hawk.lock.yml | 6 ++-- .github/workflows/dev.lock.yml | 6 ++-- .../developer-docs-consolidator.lock.yml | 6 ++-- .github/workflows/dictation-prompt.lock.yml | 6 ++-- .github/workflows/docs-noob-tester.lock.yml | 6 ++-- .github/workflows/draft-pr-cleanup.lock.yml | 6 ++-- .../duplicate-code-detector.lock.yml | 18 ++++++------ .../example-permissions-warning.lock.yml | 6 ++-- .../example-workflow-analyzer.lock.yml | 6 ++-- .github/workflows/firewall-escape.lock.yml | 8 +++--- .github/workflows/firewall.lock.yml | 6 ++-- .../workflows/functional-pragmatist.lock.yml | 6 ++-- .../github-mcp-structural-analysis.lock.yml | 6 ++-- .../github-mcp-tools-report.lock.yml | 6 ++-- .../github-remote-mcp-auth-test.lock.yml | 6 ++-- .../workflows/glossary-maintainer.lock.yml | 6 ++-- .github/workflows/go-fan.lock.yml | 6 ++-- .github/workflows/go-logger.lock.yml | 6 ++-- .../workflows/go-pattern-detector.lock.yml | 6 ++-- .github/workflows/gpclean.lock.yml | 6 ++-- .github/workflows/hippo-embed.lock.yml | 6 ++-- .github/workflows/hourly-ci-cleaner.lock.yml | 6 ++-- .../workflows/instructions-janitor.lock.yml | 6 ++-- .github/workflows/issue-monster.lock.yml | 6 ++-- .github/workflows/jsweep.lock.yml | 6 ++-- .../workflows/layout-spec-maintainer.lock.yml | 6 ++-- .github/workflows/lockfile-stats.lock.yml | 6 ++-- .github/workflows/mcp-inspector.lock.yml | 10 +++---- .github/workflows/mergefest.lock.yml | 6 ++-- .github/workflows/metrics-collector.lock.yml | 6 ++-- .../workflows/notion-issue-summary.lock.yml | 8 +++--- .github/workflows/pdf-summary.lock.yml | 6 ++-- .github/workflows/poem-bot.lock.yml | 6 ++-- .../prompt-clustering-analysis.lock.yml | 6 ++-- .github/workflows/python-data-charts.lock.yml | 6 ++-- .../workflows/refactoring-cadence.lock.yml | 6 ++-- .github/workflows/release.lock.yml | 18 ++++++------ .../workflows/repo-audit-analyzer.lock.yml | 6 ++-- .github/workflows/repo-tree-map.lock.yml | 6 ++-- .../repository-quality-improver.lock.yml | 6 ++-- .github/workflows/research.lock.yml | 6 ++-- .github/workflows/safe-output-health.lock.yml | 6 ++-- .../schema-consistency-checker.lock.yml | 6 ++-- .../schema-feature-coverage.lock.yml | 18 ++++++------ .../workflows/security-compliance.lock.yml | 6 ++-- .../semantic-function-refactor.lock.yml | 6 ++-- .github/workflows/sergo.lock.yml | 6 ++-- .../workflows/slide-deck-maintainer.lock.yml | 6 ++-- .../workflows/smoke-call-workflow.lock.yml | 18 ++++++------ .github/workflows/smoke-ci.lock.yml | 6 ++-- .github/workflows/smoke-claude.lock.yml | 6 ++-- .github/workflows/smoke-codex.lock.yml | 28 +++++++++---------- .github/workflows/smoke-copilot-arm.lock.yml | 6 ++-- .../smoke-create-cross-repo-pr.lock.yml | 6 ++-- .github/workflows/smoke-crush.lock.yml | 6 ++-- .github/workflows/smoke-gemini.lock.yml | 6 ++-- .github/workflows/smoke-multi-pr.lock.yml | 6 ++-- .github/workflows/smoke-opencode.lock.yml | 6 ++-- .github/workflows/smoke-pi.lock.yml | 6 ++-- .github/workflows/smoke-project.lock.yml | 6 ++-- .../workflows/smoke-service-ports.lock.yml | 6 ++-- .github/workflows/smoke-temporary-id.lock.yml | 6 ++-- .github/workflows/smoke-test-tools.lock.yml | 6 ++-- .../smoke-update-cross-repo-pr.lock.yml | 6 ++-- .../smoke-workflow-call-with-inputs.lock.yml | 6 ++-- .../workflows/smoke-workflow-call.lock.yml | 6 ++-- .github/workflows/spec-enforcer.lock.yml | 6 ++-- .github/workflows/spec-extractor.lock.yml | 6 ++-- .github/workflows/spec-librarian.lock.yml | 6 ++-- .github/workflows/stale-pr-cleanup.lock.yml | 6 ++-- .../workflows/static-analysis-report.lock.yml | 6 ++-- .../workflows/step-name-alignment.lock.yml | 6 ++-- .github/workflows/sub-issue-closer.lock.yml | 6 ++-- .github/workflows/super-linter.lock.yml | 6 ++-- .../workflows/technical-doc-writer.lock.yml | 6 ++-- .github/workflows/terminal-stylist.lock.yml | 6 ++-- .../test-create-pr-error-handling.lock.yml | 6 ++-- .github/workflows/test-dispatcher.lock.yml | 6 ++-- .../test-project-url-default.lock.yml | 6 ++-- .../workflows/test-quality-sentinel.lock.yml | 6 ++-- .github/workflows/test-workflow.lock.yml | 6 ++-- .github/workflows/tidy.lock.yml | 6 ++-- .github/workflows/typist.lock.yml | 6 ++-- .../workflows/ubuntu-image-analyzer.lock.yml | 6 ++-- .github/workflows/unbloat-docs.lock.yml | 6 ++-- .github/workflows/update-astro.lock.yml | 6 ++-- .github/workflows/video-analyzer.lock.yml | 6 ++-- .../visual-regression-checker.lock.yml | 10 +++---- .../weekly-editors-health-check.lock.yml | 6 ++-- .../workflow-health-manager.lock.yml | 6 ++-- .../workflows/workflow-normalizer.lock.yml | 6 ++-- .../workflow-skill-extractor.lock.yml | 8 +++--- pkg/cli/mcp_add.go | 9 +++--- pkg/cli/mcp_add_test.go | 11 ++++---- pkg/cli/mcp_registry.go | 9 +++--- pkg/cli/mcp_registry_improvements_test.go | 5 ++-- pkg/cli/mcp_registry_list.go | 5 ++-- pkg/cli/mcp_registry_live_test.go | 9 +++--- pkg/cli/mcp_registry_test.go | 3 +- 193 files changed, 650 insertions(+), 643 deletions(-) diff --git a/.github/workflows/ab-testing-advisor.lock.yml b/.github/workflows/ab-testing-advisor.lock.yml index b56ebc6ff7d..72d1ac89b33 100644 --- a/.github/workflows/ab-testing-advisor.lock.yml +++ b/.github/workflows/ab-testing-advisor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"41abb433c380d73bcc74acb9e55cf049b3a8cd60e6b862d08a68d3943d9fdbe2","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml index 54fcf981ba3..c96f55e8f43 100644 --- a/.github/workflows/ace-editor.lock.yml +++ b/.github/workflows/ace-editor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e62af133a5a0fc20765af5b7d6d3fa73aded5a3fd0b0e44e22cab76f63809c4c","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -432,7 +432,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -967,7 +967,7 @@ jobs: GH_HOST="${GH_HOST#http://}" echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Post ACE editor session link - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: script: | const prNumber = context.payload.issue.number; diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index b8bcd881736..e282c048d33 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4e381be91f6794d308adfc7ce3d3ff611e46f1ba515ffdae710885f83405042a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -466,7 +466,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index 40aec314f3e..44fdc4ddfaa 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6f10b0b64e2d95a4d26a32f10ab44a2815ca092e012fc04e60670606882bb37f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -466,7 +466,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/api-consumption-report.lock.yml b/.github/workflows/api-consumption-report.lock.yml index 1de92a0d1ee..0ac433e2951 100644 --- a/.github/workflows/api-consumption-report.lock.yml +++ b/.github/workflows/api-consumption-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8f7f5703d214e80c35a3895c6059d7315fbf39c67ea6e7633b63fb6ac2adfa71","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -515,7 +515,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/approach-validator.lock.yml b/.github/workflows/approach-validator.lock.yml index 2e03cf96f7c..ff551c1080d 100644 --- a/.github/workflows/approach-validator.lock.yml +++ b/.github/workflows/approach-validator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"dac8ac168c64f7eac2c39a0dd339af6ccb10aea8ac5288b8f8377ed09544d72b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -463,7 +463,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 7ba5487d703..1b5e22dba00 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9f175c71a30941bfa9f6fb8d9d02952c06707b28de9ca2f9bd6084efe3b170e1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -506,7 +506,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/architecture-guardian.lock.yml b/.github/workflows/architecture-guardian.lock.yml index 1161e67099e..051f59350c1 100644 --- a/.github/workflows/architecture-guardian.lock.yml +++ b/.github/workflows/architecture-guardian.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f148c31516ffd0cda3b9b9d3914dd7f67f3e6c3a48349b29094e927364362bd9","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -423,7 +423,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 3ea01ae9a84..5469f4f60b9 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0f792dad241113b3c7e7118c507e6ff390e109ec501bc8eeaebe4d84c861e400","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -404,7 +404,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index ddcfc8ef733..c1d99fc9f8c 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0c0daa793941c4ca6bf2ea024c89493964b7e8d92d7242c3b06b9152168a2dbd","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -535,7 +535,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/aw-failure-investigator.lock.yml b/.github/workflows/aw-failure-investigator.lock.yml index 91004417a26..9c704d11379 100644 --- a/.github/workflows/aw-failure-investigator.lock.yml +++ b/.github/workflows/aw-failure-investigator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"da6963c9df994349c6fe23fc8357f4539482525f87af19df1f0b507a00b829cf","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -446,7 +446,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index 2459b93e685..334f8686161 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8e3f96fa71c2ab501231af7aaae2ea7dc443f4d5c1ed72f83a65cac97281689a","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -434,7 +434,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index 53f6c7cb8eb..a3e1350b779 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"225edc358fd2519d11b661ca5b81ec89eb125276424620c6c567cea58acd3768","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -424,7 +424,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1131,7 +1131,7 @@ jobs: echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Precompute deterministic findings id: precompute - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 6eb2b2b881d..8a5c49babd6 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3053e93af25517971471cb8fe9f40cc9bada97ced5f00066277f072d8b2e4b89","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["BRAVE_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["BRAVE_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -462,7 +462,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index fa92d77a0e7..f2cdba65bba 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4faeb3ac7bf52adab6574c04479856ed36a098fd1ab00e87edf9b414c37f1611","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 6633168ffdd..8f80f8cb47c 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"928f3f9c2ed5c5afcad0c561553859b1abed6e90d0bb9417de4bffb07c30efbb","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -466,7 +466,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 14a14f0ac13..8c56e568f0b 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"51f89c8cb12198772f75fb83faddd0d0c089deea6a8fcd1164a3fe316ec1f3e4","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -484,7 +484,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index c094bb0de63..c0db3136a10 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d9290755b0a10a3b63fe12bf7cafa645921ae91468c4718849c8740081483861","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -530,7 +530,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index 0c42af3f724..e184aa20c45 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c27f06e7e30a5acf0c83de52fddf3d52c8509ce2806b81c9915a5e6cb4d9f49f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -453,7 +453,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index c4aaedac6d7..7f5ce058d75 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f59e01aa6ba935337217727225b906d1c0ca357b290779da03d0cd7eb6662571","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 3f7aaf567f2..cba7dbe2275 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c94fec3fbce538593713e1d78bf05cef0fdc7392f2b3ffb1fe84adec8ff69244","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -437,7 +437,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index 21fd48d9c1d..cd7aac5743a 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"81b0e09a68aa6e82ef2982534646abf8861b6b80c91b19f4d6beb50718425a63","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -628,7 +628,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index f5ca2752043..c34d5fda089 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8bf40e478e3d5b64613f634000a17890f7e696fbc8097254607872303a6f5fb4","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -451,7 +451,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index 4b57c573c9f..d336fb3dab5 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3b946829a4d8524863fa25f6d387410ee9ded07bcc60d596df6500f87cf34601","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -422,7 +422,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index b06198b4ceb..d57672f9239 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e1fdf4ed94335573d12b3d3eefdd022530bc92c373fe374f759f2ffadf83bc5c","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index 1761e589b1f..b0f4ad74521 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4cac19ba054642f03e9a3f5b64925be596ca1f681186f9f97679e0de7b23bef3","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -412,7 +412,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index 7bd0b2f4666..1fc85819d8d 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7efc65e883817022b5f95689bac254ca4cd5142e58a0a5a6c3850f20f776174d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -408,7 +408,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 87c2b8039e7..af5f823385e 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"76a2c458143195c36b8a394940d48ff2c2e07e9071944599dad5d7ca2f61a01a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -491,7 +491,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index 1e29e0be8b0..ed495c6dce8 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"86dbbee9ae8243041eaed6efcf3a46480fc3f28a5651382336940dfe2f8274c3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -431,7 +431,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-opt.lock.yml b/.github/workflows/copilot-opt.lock.yml index f9a77bde174..7e1a252175a 100644 --- a/.github/workflows/copilot-opt.lock.yml +++ b/.github/workflows/copilot-opt.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"379b1a1b41bd9a3438dac4fd0d371a73ccedfb0d3e8025ddf06bf38be796a338","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -458,7 +458,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 1cd57d5cbfb..7f86916c6c9 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a6af1109c23cf60251b6671ad885c154c62971759586814d18245fa443a115da","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -49,8 +49,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -519,7 +519,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index ab5e2ce5a14..c74a8c010af 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"44b66dc9e2e7f1da70438e3e8ae85cf6ac14176c36e32b65630ad451fbf6b42e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -487,7 +487,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index fcba945991c..c14bb7c5b20 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4fe86b361d0266c903e7aed5b5162e363187b2baf68c44c02ca3f2b17ed835ce","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -50,8 +50,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -522,7 +522,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml index 7b702013474..43a429b9278 100644 --- a/.github/workflows/copilot-token-audit.lock.yml +++ b/.github/workflows/copilot-token-audit.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"467577d5171eeab646a24dee35465fba5737a7b032d2b5838b87e598bed1ed3f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -487,7 +487,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/copilot-token-optimizer.lock.yml b/.github/workflows/copilot-token-optimizer.lock.yml index e27948420ef..67f27cd5a56 100644 --- a/.github/workflows/copilot-token-optimizer.lock.yml +++ b/.github/workflows/copilot-token-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f002b9c6104909a29c74b198dba6992105e5b63418b571c341e32f76a4b6ab5b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -451,7 +451,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index 05a126c3d39..cc0ed5a47c2 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ab3b3a18d65f7957264e5d6f70a653635eea9856bc3d3ba6514e49cf0502890f","strict":true,"agent_id":"copilot"} -# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -464,7 +464,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index 34d5c2f6a2a..37953b0408d 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"57075b5ba7f895be8a3f55bc46390c2923cf334537b96c709a95a198069786ab","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -445,7 +445,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 967f5134063..1b439fcca3b 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6086cc6cd52cfb63a416942f474c23271721490279d175ff9077b235617b842e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -414,7 +414,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml index d66a6d4b503..18b779c0002 100644 --- a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml +++ b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ebbe8bdc3bd1688889cc261f6f39d2f5ba7c158ede63b281ba08674170bf4139","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -471,7 +471,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml index bdf3b0eeece..8e6794c6f7e 100644 --- a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml +++ b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"145fcfd468865b46986f6514b7fb617cd6f83fe1c99fd966e7a193c444983f3a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -449,7 +449,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-cache-strategy-analyzer.lock.yml b/.github/workflows/daily-cache-strategy-analyzer.lock.yml index c926930c5d0..35089104eb8 100644 --- a/.github/workflows/daily-cache-strategy-analyzer.lock.yml +++ b/.github/workflows/daily-cache-strategy-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7735bd58acc64d4b6829a234fa1a98c05d50db458582fb63e2c8c6b328355261","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -498,7 +498,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1429,18 +1429,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_994ba2010cceb97f_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d354308691e446db_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_994ba2010cceb97f_EOF + GH_AW_MCP_CONFIG_d354308691e446db_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_42349fa526a592f9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_1cf1f82b6bfdfa02_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1451,11 +1451,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_42349fa526a592f9_EOF + GH_AW_MCP_CONFIG_1cf1f82b6bfdfa02_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_9421b53be15d1bae_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_3c09957d6481cf7a_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1465,7 +1465,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_9421b53be15d1bae_EOF + GH_AW_CODEX_SHELL_POLICY_3c09957d6481cf7a_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-caveman-optimizer.lock.yml b/.github/workflows/daily-caveman-optimizer.lock.yml index f379585e8b1..ce587ca6270 100644 --- a/.github/workflows/daily-caveman-optimizer.lock.yml +++ b/.github/workflows/daily-caveman-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0a341c0074fff21d2ae176d9b951b60cbdb5d4de87f416cba588963e5452f093","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -450,7 +450,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index 28b1a45fbbb..2b150dccd8a 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8c90ba6b195929f58b0e6761db669d6037cbd65cd581110ad530d481edfcb623","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -420,7 +420,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index 10260672ea3..e78e80e61f5 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"47b9f9bf48bfbd180119537d0e11ac61e3750c1790e68b6a6fe738321a06c6e6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -481,7 +481,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1608,7 +1608,7 @@ jobs: await main(); - name: Detect recent compilation-related changes id: changes - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: script: | const { owner, repo } = context.repo; diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 7d343e895e8..2a10e748046 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d8946ad38647f75543264b70bf628d0bb03d72b1201ec5bc8c2901728f283267","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -460,7 +460,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 35453b36d93..ac38fcca27e 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"421a96409424cc25f20442d1718d6b9d46b552105c126f694c16a3560dec6f97","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -497,7 +497,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index b7476e559b9..46b3f41d445 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b21689432d5f6d3c2cae1107260d27ca95c85a218c56f36f78344a6c9c67a9a9","strict":true,"agent_id":"copilot","agent_model":"claude-haiku-4.5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -505,7 +505,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 2d029969452..796ad72a697 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"431d1b93ace3a0cc6eb057a024b6d6cae88af68f1d573de6f5f5d5015d1bf4fc","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -483,7 +483,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml index 557e998b9b9..8d9522ccbed 100644 --- a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml +++ b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6ea47d6a0091486c4df2518fc616c177e3b7351e3cd9d8bfde1f9fd327ebd8a3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index 2bb83cdcd92..bf458545eed 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"165987363bef3eb402a7f0e930d15f1e587f554b3fec79d3cb60b1b69f1a5c8f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -453,7 +453,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-experiment-report.lock.yml b/.github/workflows/daily-experiment-report.lock.yml index b1bcc76ff9b..bba7f7ba705 100644 --- a/.github/workflows/daily-experiment-report.lock.yml +++ b/.github/workflows/daily-experiment-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0f6749cfd7fe53f0a179f26e17c889d23bfd348ba6e75beeba1a55006bb5cc29","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -468,7 +468,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 27eb7c31b1e..798ea89c5c4 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8f32bb64db41f17a4afc61218164172ce0cb16f27120774267b41dd2e84d67b1","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -561,7 +561,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1437,18 +1437,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_7689ca1696279047_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_9b6edca4d28d8598_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_7689ca1696279047_EOF + GH_AW_MCP_CONFIG_9b6edca4d28d8598_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_000815b2980077e6_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_eacdab9d1f0b93f0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1459,11 +1459,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_000815b2980077e6_EOF + GH_AW_MCP_CONFIG_eacdab9d1f0b93f0_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_ad20b95fe1148033_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_7d49e902cc0ed53a_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1473,7 +1473,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_ad20b95fe1148033_EOF + GH_AW_CODEX_SHELL_POLICY_7d49e902cc0ed53a_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index bb119e7f798..8f413536903 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8261e0cbe4fc6782cda78b89c3f2ac0e799d9e4aebb7926dd77563bd754bfc57","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -467,7 +467,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index c381e6fd5ec..060e8e62486 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4e3bb608c02338d05b3bc3a48474524333012715c190e5ab36333a06f1b760e5","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -508,7 +508,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 67f210f6db7..922a35e4b6b 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6518571ac55954cc4dd9b5487832cd986617a9b7082d641b9c48ee3cdadfc00f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -485,7 +485,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-geo-optimizer.lock.yml b/.github/workflows/daily-geo-optimizer.lock.yml index 3e3a11a6414..bfb016f26aa 100644 --- a/.github/workflows/daily-geo-optimizer.lock.yml +++ b/.github/workflows/daily-geo-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"138fc20b466663725030b55cee9023bff26aacf17edb99ece01ecf3f8cf79ca6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"34e114876b0b11c390a56381ad16ebd13914f8d5","version":"v4"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a26af69be951a213d495a4c3e4e4022e16d87065","version":"v5"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"34e114876b0b11c390a56381ad16ebd13914f8d5","version":"v4"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a26af69be951a213d495a4c3e4e4022e16d87065","version":"v5"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -437,7 +437,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml index ee111328e30..c7ba6e24bb0 100644 --- a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b648007715aade2e1cb3ebdba89093f99a3aff5baa75898e79f1fc725b9d20f9","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","GRAFANA_SERVICE_ACCOUNT_TOKEN","GRAFANA_URL"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"grafana/mcp-grafana","digest":"sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090","pinned_image":"grafana/mcp-grafana@sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","GRAFANA_SERVICE_ACCOUNT_TOKEN","GRAFANA_URL"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"grafana/mcp-grafana","digest":"sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090","pinned_image":"grafana/mcp-grafana@sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -433,7 +433,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-hippo-learn.lock.yml b/.github/workflows/daily-hippo-learn.lock.yml index c2631b7dca1..1732f7e0fa9 100644 --- a/.github/workflows/daily-hippo-learn.lock.yml +++ b/.github/workflows/daily-hippo-learn.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"355a8f19782b8e185c7b0be680e584d9bff1fe8fa923cf68da4f213e2801fc39","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -458,7 +458,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 878d39adebe..e0b1061d7ff 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c4032d1b7f650fa07608e813efcc105383b28d7ee6302941224a074aa88ce1dc","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - github/codeql-action/upload-sarif@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4.35.4 # @@ -420,7 +420,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index f389acd64ad..831ed0e05eb 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"07dab451e41d4310dbf8b072bc6965ee17ed36650305608552de6af84be9f044","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -480,7 +480,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-model-inventory.lock.yml b/.github/workflows/daily-model-inventory.lock.yml index 9c2ce0c77e7..2fbeea0cdd6 100644 --- a/.github/workflows/daily-model-inventory.lock.yml +++ b/.github/workflows/daily-model-inventory.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9e67c109b916d60aad73436244cb58453977994b2fb190e9016e0cbd9221cafd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -449,7 +449,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 81330548bfc..553e28abccb 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"af46f7fc7876692e2c3f4c2d69ab6c1576d366d933903af5e7da5a8b1eb1f77c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -446,7 +446,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 94b63cc2462..9095d4fa646 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"217ffb39c37a58f4a33b0d592dfc583d7b49077984b659d7bfcd42a7228e7350","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -49,8 +49,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -577,7 +577,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 6378bc8c67c..8793538bffc 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4af89543a56b3fb0beee3bbb82f3bfdfb2c7a147cc3eb369122b53a67b208bef","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -468,7 +468,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1352,18 +1352,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_12b2b5e35da73378_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_de3f1263671e4034_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_12b2b5e35da73378_EOF + GH_AW_MCP_CONFIG_de3f1263671e4034_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_475ff198d622da38_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d88b550a815ded00_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1374,11 +1374,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_475ff198d622da38_EOF + GH_AW_MCP_CONFIG_d88b550a815ded00_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_f277036d1009fb65_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_ed2479ec8e47b87e_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1388,7 +1388,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_f277036d1009fb65_EOF + GH_AW_CODEX_SHELL_POLICY_ed2479ec8e47b87e_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml index cbcf1ce6529..63674468210 100644 --- a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bdc3c787bb85a49fe957b5a5190d0cb8950888a866b55cdbbef993a5c2cde1d8","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -431,7 +431,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index fbe870f9deb..84ad70343e6 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"094b59faf7df2201631ea1b6dd01f26a169dd58d40a732381823a482bc5542c1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -478,7 +478,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index ba80a89ed1e..9896bf694af 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"045264000689ed270b8e2941cdf5698ac8884a9f5e603c3bc0717fe93924a511","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 4148c5b5db3..47e48fc48a7 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2c64b893f61f33a9d3605485d8987044cfbf4bb3317ee94a7ec7eda27618558d","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -49,8 +49,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -502,7 +502,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 64dc080c350..9f5e48d16a1 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"704939c0e3ba029bc3f5011dc82b4330659f1e7b4c73704c812fc5204d1fe25b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -471,7 +471,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index e919c496a6b..3f245613965 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"69b3c1582a106c49b8603957bc548aea35822941589ac8ccd20d96298891d6a6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -424,7 +424,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index 56d4694072b..00b52699a60 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"90a30e18afa62d8695f38c1e41cb38c0d4ab5f7b5e2daa6f7596fc3501b4bc48","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -502,7 +502,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index fb6a6ccd9cf..5ab7128fb20 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c5b938f024d076d342904dc6efbdb8aae0b76d8002f38b088f6df14b451cd15f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -424,7 +424,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index bd5d009a6f7..074c2e71723 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"196f0edb92cff10bf32778bf8c9d9c015319b2650be9b3abf20f586d717e6d1f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -422,7 +422,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-security-observability.lock.yml b/.github/workflows/daily-security-observability.lock.yml index a3a271fae83..a17dc899f3b 100644 --- a/.github/workflows/daily-security-observability.lock.yml +++ b/.github/workflows/daily-security-observability.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a2167ef8cfb9632256a96de886ab40051b28c1bb60e9f38d7e889bcfb6663fbb","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -545,7 +545,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index 2117312beb1..d299ce66993 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5ac9d361c9968adc7585ddfe3152c16ae13d0db29c4dc89095c9dcd9a8ccb4e8","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -456,7 +456,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index 8fcb9f4e109..83100222936 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0c944adbbed86e8058cf05e77d572fe07e9b032873c8345a40f140f656487833","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"semgrep/semgrep:latest","digest":"sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2","pinned_image":"semgrep/semgrep:latest@sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"semgrep/semgrep:latest","digest":"sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2","pinned_image":"semgrep/semgrep:latest@sha256:17d89ddd91a7729bbd5de09402f7f79a70204289e2a94635086e9db532a495f2"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - github/codeql-action/upload-sarif@68bde559dea0fdcac2102bfdf6230c5f70eb485e # v4.35.4 @@ -421,7 +421,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-sentrux-report.lock.yml b/.github/workflows/daily-sentrux-report.lock.yml index c98da0f65d3..562b89f4c5d 100644 --- a/.github/workflows/daily-sentrux-report.lock.yml +++ b/.github/workflows/daily-sentrux-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"57f90d3b41779f9135ed91c7806b5a3b24ad4e81151629282af4c559e3546c39","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -457,7 +457,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-skill-optimizer.lock.yml b/.github/workflows/daily-skill-optimizer.lock.yml index e804c7c2805..c8c6c12e726 100644 --- a/.github/workflows/daily-skill-optimizer.lock.yml +++ b/.github/workflows/daily-skill-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8baed80cab30b6fa60ebbb1038a94feb13d2db226a0f88effccf65c0e89df0e5","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENROUTER_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENROUTER_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -431,7 +431,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-spdd-spec-planner.lock.yml b/.github/workflows/daily-spdd-spec-planner.lock.yml index 90f7de692bf..323bff3767b 100644 --- a/.github/workflows/daily-spdd-spec-planner.lock.yml +++ b/.github/workflows/daily-spdd-spec-planner.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a6fda12069890cbfe1eabf57a04192dada1eff4a56042469fa58bc614b27d80","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -435,7 +435,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-subagent-optimizer.lock.yml b/.github/workflows/daily-subagent-optimizer.lock.yml index 1474d6431d6..07e27c4d150 100644 --- a/.github/workflows/daily-subagent-optimizer.lock.yml +++ b/.github/workflows/daily-subagent-optimizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"347ff636d58c7fc6f84c126bbff5c091fa2d87f6b169339bd8a4763e8e2cb217","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -476,7 +476,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 9d3a9d7ea4e..441ce5568c1 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"42c3ac70f8caee119d8405ce3ddbf2db614b749ebfb61887dcbc0d520e5b6168","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -433,7 +433,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index c1da77d5e56..1f61590594c 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a9d49e9717601a3204bc22ced2ecda031a78e0997be1e36df9498a350100686","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -427,7 +427,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index d1b6001cb7c..c23df8e4978 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a1b4906638891c37f97cff781853bc3c3c47b74c60be2d70ac9a32a8758914f4","stop_time":"2026-02-09 04:24:39","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,8 +48,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -437,7 +437,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 42d0f8a03b4..340e78e7126 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9376f92dd9b89c18f75fcc9254827b51a7d03ca26ee6829a1d72f03c6e3f0a3d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -491,7 +491,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-token-consumption-report.lock.yml b/.github/workflows/daily-token-consumption-report.lock.yml index b843fe8c432..ea4ab895630 100644 --- a/.github/workflows/daily-token-consumption-report.lock.yml +++ b/.github/workflows/daily-token-consumption-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"284e7dccc0d83300068db2dff53d7b16f88a921fbb7b0a2ee1090a6093e66e51","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -434,7 +434,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index f473dc8a2d2..218f787bcc8 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f91b3427f05490ae394a947b6331c04528f35b5abbbb0154ce790cd026b65cfa","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -419,7 +419,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 4e1cea2ff2f..663228db32d 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"958756b0a2c271e8810d808293d964ee6e088f38f714d31be8ef068e6eb0c8ad","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -455,7 +455,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 4ae9c4f90a9..161fa563680 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"61961a358386061bda72347747d7231f2459d4f4687aa9a06978ed39184908ef","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -562,7 +562,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index a359e976f08..4f20d7d4957 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c9c4220b106989e0e1c36abbade0f5a72fd628f3db3cd2b57bfcdf696e4726eb","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -447,7 +447,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index d2f22e07d36..061c6f540e9 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"fc3e661d1a93526bee9a588cf442990adc55c1be262e479b26177ae199bfd98c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -406,7 +406,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index daff2d8cccb..c4cfed49efe 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d1f3ed89dbddf32cac2701522085502186abd82f727c446a20f461941a95b70c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -410,7 +410,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dependabot-repair.lock.yml b/.github/workflows/dependabot-repair.lock.yml index 34c1de1d458..7f56c2b7803 100644 --- a/.github/workflows/dependabot-repair.lock.yml +++ b/.github/workflows/dependabot-repair.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"aeb9570f2463c17ff8417fd854ec8d450e04b5fee310baa6373b0f7ac7991abf","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -418,7 +418,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/deployment-incident-monitor.lock.yml b/.github/workflows/deployment-incident-monitor.lock.yml index 041c7cf5983..30112490b0f 100644 --- a/.github/workflows/deployment-incident-monitor.lock.yml +++ b/.github/workflows/deployment-incident-monitor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f0ee4f3dda1df2f191e0bb8aa1ee4a6548e965306a958cd60a43ade31fb234c9","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/design-decision-gate.lock.yml b/.github/workflows/design-decision-gate.lock.yml index 7bc925bed84..595ea4b9d42 100644 --- a/.github/workflows/design-decision-gate.lock.yml +++ b/.github/workflows/design-decision-gate.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"02fb0aadf14abfed6ebbdc11282eb39d346335ea1e9292f3c310f39b2661353c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -509,7 +509,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index 702b23c33ef..e2ce0f33e26 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"87ea4048d44a01952f8fdeab77e7a4e8dcd93a45a8b337809367614a1d2d5a7e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -472,7 +472,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 996c9f1f0ac..52a75b891af 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cc975ed0d58d799d184035327af359c4a3225a02a95981b5d20c04fae0f857bf","agent_id":"pi","agent_model":"copilot/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -462,7 +462,7 @@ jobs: run: npm install --ignore-scripts -g @mariozechner/pi-coding-agent@0.72.1 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 96339936eac..332a1a49341 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c0bd4ccfb6d49e82fad631dd78e9004c569f02f670b9aa6e0a0b6b40854e038f","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -513,7 +513,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 0cd8b702c31..0c97765048b 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ed8540a632f969aaff0d4b38b4f52a400fc9fbe609734ade78bb8e9e9909f85c","strict":true,"agent_id":"copilot"} -# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -406,7 +406,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index 233a38d8ff4..f292f1aef7a 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ffe0f07abcaea90386293130cd8039dbc68349bae4371be2c4b1a620e82dd2af","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -436,7 +436,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index 05145d75cf1..62ada4f1f1d 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"374eb94317f73e5985210717fa0560fa9d91c1cf1887b83b82758a5e57e12c82","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -398,7 +398,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 0e6d6dec430..f3b54a49309 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f2f8fb097558033c3259111aca743bc19712c3c1bf92746c1ec528d247a34dfa","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -452,7 +452,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1317,18 +1317,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_c915eb285a3c2554_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_71822c419cea3bc2_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_c915eb285a3c2554_EOF + GH_AW_MCP_CONFIG_71822c419cea3bc2_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_89f72dccfae70dbe_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5725bb92c620c071_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1339,11 +1339,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_89f72dccfae70dbe_EOF + GH_AW_MCP_CONFIG_5725bb92c620c071_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_a86d8b4a55d4a4d1_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_232df0be1013419f_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1353,7 +1353,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_a86d8b4a55d4a4d1_EOF + GH_AW_CODEX_SHELL_POLICY_232df0be1013419f_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 25343017bbe..57786792457 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6f1f0364b2a08f74ad20e02011202561a642785b7763aaf45ce1b7d4d3be642d","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -398,7 +398,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index ac2065de17c..350fff73e96 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"71f8f6644a93c7c7bf7ed5699b5e496b8ec31ebde8437092119a983efe3d70bb","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -463,7 +463,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 4b50a9ac832..34a32358a96 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a88eb523f6e675523fba8343a7281c42a0fbbbfe53a00a519df046df90a6685d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -473,7 +473,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1363,7 +1363,7 @@ jobs: GH_HOST="${GH_HOST#http://}" echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Create issue on test failure - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: script: | await github.rest.issues.create({ diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 9158e8840c5..1035bcb30e4 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0afff0744c76852dc9b362a8325209f35a92832f9646c54ceaef481f40099cfa","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -400,7 +400,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index 00f2c8f0b2a..f6aeade2dc7 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3dc690e7156f467b8f1c8af7f65395ddafd2b390b480294673cd3f6680ad3b81","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -412,7 +412,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 533519919c8..c709eb0e6cf 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"74c0dd6eb2747949a248ae1da0b18dbab08091fb90c7b788c1db5310f3511b47","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -476,7 +476,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index c3004774f4e..690c581196a 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"814816a5777f95b7c3ab40322e1973233399700e882e0d1cf28b883848f47735","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -454,7 +454,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index 563ab0c0b5a..df066f555a0 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"340833dcf0790917dc5c1ddb6ca84087af54b11249edf72c80b29d85835f642c","strict":true,"agent_id":"copilot","agent_model":"gpt-4.1"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -429,7 +429,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index f701d7adca6..9a76fa1a745 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"74ffa39f24050cb25a0f3bf3e72c0abb9e0632f6607ba0d92cb59e500a9241c1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -515,7 +515,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 0a43f6e40bf..22481f1184f 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5d2bfd8562346a117204579c663a2ef888d447c79cf44f049c43c9f3e052751b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -489,7 +489,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 621a78f08f5..4443355c384 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"819760b3fd150d82d49a3686b6c9cfc724f316156a08ea5798a4c766045150b9","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -452,7 +452,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index c120a8fcf1f..b8af607e5a6 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f87f0facf4a4f63a149dc272cd97dc7a236171c6397681572ccd2e2f1d0fa63b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -418,7 +418,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index 09e6f9b083b..ae8843739cf 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0d8f13bc0d4b795edde4cadbc774783430263afa5660f19d0d516c029fe9d9f1","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -437,7 +437,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/hippo-embed.lock.yml b/.github/workflows/hippo-embed.lock.yml index 73abbea71df..4e37a2bc95a 100644 --- a/.github/workflows/hippo-embed.lock.yml +++ b/.github/workflows/hippo-embed.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"495974c3d588277708a1f57798de873b11f8dda73a9b5c77db6562109e7f6d4b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -433,7 +433,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 2a3f2068980..4f2b1598d9f 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"426f66db494453f3e49396a8e2b342b5a5f7579d10f7590f401886df0237ed9d","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -458,7 +458,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index fcb6a840db5..a783d689792 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f5e602533686b7583ddc945191bccace86044b081fef89ced495d79dd0b113b6","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -430,7 +430,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index 73e6de419d5..d6134806936 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9329c2054bd71919cd82788b2a41b4d98fc079188e3dd7c0ebc46b6bbc534f07","strict":true,"agent_id":"copilot","agent_model":"claude-haiku-4.5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -1749,7 +1749,7 @@ jobs: await main(); - name: Search for candidate issues id: search - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: script: | const { owner, repo } = context.repo; diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index 820dc189db4..d2ed7967052 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2bf4d1a013cdb49a5abb01df90afd44179ba4d7f7a87940e767b7b30084e39cd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -441,7 +441,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 175e73fb40c..96b694cf11c 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"daca38c3e8f976010b6c0d94c9f0e16cc6aa5997efa3e9f20f44ebda344d8e4b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -35,8 +35,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -417,7 +417,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 26a98952cd0..6897e1fbb06 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"073a957e93a15d9f5e9845e434ff0d7c131c7c70787269bbec8e59acc15b1fc5","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -448,7 +448,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index a8613c144aa..d501362f4fd 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2f5ff1d393abf1fa9520cf7dc0a0289cd1f0773d75a398ceae002ebb2bd59b1c","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["AZURE_CLIENT_ID","AZURE_CLIENT_SECRET","AZURE_TENANT_ID","BRAVE_API_KEY","CONTEXT7_API_KEY","COPILOT_GITHUB_TOKEN","DD_API_KEY","DD_APPLICATION_KEY","DD_SITE","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","NOTION_API_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY","SLACK_BOT_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"astral-sh/setup-uv","sha":"08807647e7069bb48b6ef5acd8ec9567f424441b","version":"v8.1.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"mcp/arxiv-mcp-server","digest":"sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e","pinned_image":"mcp/arxiv-mcp-server@sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"mcp/context7","digest":"sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836","pinned_image":"mcp/context7@sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"mcp/memory","digest":"sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f","pinned_image":"mcp/memory@sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"python:alpine","digest":"sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116","pinned_image":"python:alpine@sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116"}]} +# gh-aw-manifest: {"version":1,"secrets":["AZURE_CLIENT_ID","AZURE_CLIENT_SECRET","AZURE_TENANT_ID","BRAVE_API_KEY","CONTEXT7_API_KEY","COPILOT_GITHUB_TOKEN","DD_API_KEY","DD_APPLICATION_KEY","DD_SITE","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","NOTION_API_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY","SLACK_BOT_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"astral-sh/setup-uv","sha":"08807647e7069bb48b6ef5acd8ec9567f424441b","version":"v8.1.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"mcp/arxiv-mcp-server","digest":"sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e","pinned_image":"mcp/arxiv-mcp-server@sha256:6dc6bba6dfed97f4ad6eb8d23a5c98ef5b7fa6184937d54b2d675801cd9dd29e"},{"image":"mcp/ast-grep:latest","digest":"sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72","pinned_image":"mcp/ast-grep:latest@sha256:5fc3f2e9dcf2c019e92662f608b8d89e12134ed6d91e6f5461de6efd506a1e72"},{"image":"mcp/context7","digest":"sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836","pinned_image":"mcp/context7@sha256:1174e6a29634a83b2be93ac1fefabf63265f498c02c72201fe3464e687dd8836"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"mcp/memory","digest":"sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f","pinned_image":"mcp/memory@sha256:db0c2db07a44b6797eba7a832b1bda142ffc899588aae82c92780cbb2252407f"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"},{"image":"python:alpine","digest":"sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116","pinned_image":"python:alpine@sha256:6f873e340e6786787a632c919ecfb1d2301eb33ccfbe9f0d0add16cbc0892116"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -73,8 +73,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -581,7 +581,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1881,7 +1881,7 @@ jobs: find "${RUNNER_TEMP}/gh-aw/safe-jobs/" -type f -print echo "GH_AW_AGENT_OUTPUT=${RUNNER_TEMP}/gh-aw/safe-jobs/agent_output.json" >> "$GITHUB_OUTPUT" - name: Add comment to Notion page - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_AGENT_OUTPUT: ${{ steps.setup-safe-job-env.outputs.GH_AW_AGENT_OUTPUT }} NOTION_API_TOKEN: ${{ secrets.NOTION_API_TOKEN }} @@ -2012,7 +2012,7 @@ jobs: find "${RUNNER_TEMP}/gh-aw/safe-jobs/" -type f -print echo "GH_AW_AGENT_OUTPUT=${RUNNER_TEMP}/gh-aw/safe-jobs/agent_output.json" >> "$GITHUB_OUTPUT" - name: Post message to Slack - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_AGENT_OUTPUT: ${{ steps.setup-safe-job-env.outputs.GH_AW_AGENT_OUTPUT }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index 6749362d159..5210cef7366 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7472e1468572f13c617e2ab441315a16100c1bd85d5b8912bcde3fa2a901b66a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -464,7 +464,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index ac3b7c07df9..5c685fd7f24 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f414287121dfeeadab158f42cfd62bf397760a0176d1433e44c1f136fd338487","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -474,7 +474,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index bb03e3ebc2a..084f0843468 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b75febf98ad793131a4ed72971d2c097d62c42dc6cfb6c7f8d20a4cd35af118c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","NOTION_API_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","NOTION_API_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/notion","digest":"sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367","pinned_image":"mcp/notion@sha256:4de8eb0de33402fcbd3740b4f4039918e4893155c7ea833c7a0c472001b88367"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -411,7 +411,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1278,7 +1278,7 @@ jobs: find "${RUNNER_TEMP}/gh-aw/safe-jobs/" -type f -print echo "GH_AW_AGENT_OUTPUT=${RUNNER_TEMP}/gh-aw/safe-jobs/agent_output.json" >> "$GITHUB_OUTPUT" - name: Add comment to Notion page - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_AGENT_OUTPUT: ${{ steps.setup-safe-job-env.outputs.GH_AW_AGENT_OUTPUT }} NOTION_API_TOKEN: ${{ secrets.NOTION_API_TOKEN }} diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 17f5f38a014..52b89965d50 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"93ad44f5e25a9e4c4b2cd5f9b806adf10d907a6e90fa515046e52e3141a9b9d0","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"mcp/markitdown","digest":"sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb","pinned_image":"mcp/markitdown@sha256:1cef3bf502503310ed0884441874ccf6cdaac20136dc1179797fa048269dc4cb"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -523,7 +523,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index b441e7631d8..3409f15a4a5 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"95d8755a3869f35541544f889f6e2c18d9f097f240d34cfcd647ca20c109a3e2","strict":true,"agent_id":"copilot","agent_model":"gpt-5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -513,7 +513,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 63671b91c40..edcf089d622 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"081c6e17a3486eb1936f18df4f69530d603dccc6c1a60314fafc98d737d32fec","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -51,8 +51,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -548,7 +548,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index ecb249307e0..e3d07ed8c82 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e5d9427ba230e322b65568dd0ad2ef01fdc321e58d0dac9c9dd4bba8fd17c58b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 @@ -489,7 +489,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/refactoring-cadence.lock.yml b/.github/workflows/refactoring-cadence.lock.yml index 8ecdc9bfb28..43f066df2ad 100644 --- a/.github/workflows/refactoring-cadence.lock.yml +++ b/.github/workflows/refactoring-cadence.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9e58276097ec44d9106f8bd305db81984e76f516b1458bef14e1b7726c5194c4","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -436,7 +436,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 124cda2ec40..733aa9172bd 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7e6be1887ca084a319f998030ae36597ae6412e4dfff39c5eff927a3454755a8","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"anchore/sbom-action","sha":"e22c389904149dbc22b58101806040fa8d37a610","version":"v0.24.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/login-action","sha":"4907a6ddec9925e35a0a9e82d7399ccc52663121","version":"v4.1.0"},{"repo":"docker/metadata-action","sha":"030e881283bb7a6894de51c315a6bfe6a94e05cf","version":"v6"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"anchore/sbom-action","sha":"e22c389904149dbc22b58101806040fa8d37a610","version":"v0.24.0"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/login-action","sha":"4907a6ddec9925e35a0a9e82d7399ccc52663121","version":"v4.1.0"},{"repo":"docker/metadata-action","sha":"030e881283bb7a6894de51c315a6bfe6a94e05cf","version":"v6.0.0 (source v6)"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0 (source v4)"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,15 +37,15 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - anchore/sbom-action@e22c389904149dbc22b58101806040fa8d37a610 # v0.24.0 # - docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 # - docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 -# - docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 -# - docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 +# - docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 (source v6) +# - docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 (source v4) # # Container images used: # - ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770 @@ -440,7 +440,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1111,7 +1111,7 @@ jobs: persist-credentials: false - name: Compute Release Config id: compute_config - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: script: | const releaseType = context.payload.inputs.release_type; @@ -1290,7 +1290,7 @@ jobs: env: RELEASE_TAG: ${{ needs.config.outputs.release_tag }} - name: Setup Docker Buildx (pre-validation) - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 (source v4) - name: Build Docker image (validation only) uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 with: @@ -1426,7 +1426,7 @@ jobs: sbom.cdx.json retention-days: 90 - name: Setup Docker Buildx - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 (source v4) - name: Log in to GitHub Container Registry uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0 with: @@ -1435,7 +1435,7 @@ jobs: username: ${{ github.actor }} - name: Extract metadata for Docker id: meta - uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 (source v6) with: images: ghcr.io/${{ github.repository }} tags: | diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index 27029bec1ef..e0f1f82c353 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"94fba79d96ce26868d3b4fcd27952cbd179311d5e20a5a2183e36a09a7fafd64","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -454,7 +454,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index d8e1a74fe89..aebd899122d 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f389c2a9031061854dfee8b6ae6223249fd22837021a6749555921bc72879951","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -407,7 +407,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index d9f8b676627..fd40154b635 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"446c67add1aad2662e6c77760effaf69df925d4d725afcd8394aa38d1ca95b46","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -45,8 +45,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -462,7 +462,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index ae09e4a0d44..466e033e02e 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c98daff2813b75da8bcc7a714993df6c9d9c7d4279a6e59ad2281053d9c75fac","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -415,7 +415,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index c4490b4564e..163f2aeb90a 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6d37bf441affc922cc4c79aa2eb36463bdf5056504e31e4f0769f4785485b4af","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -46,8 +46,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -494,7 +494,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 8205bef7e56..5f071f24109 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e75f5e7a9527ecb2304b5af3e72ea774d90b82877875cdf56a6c5eadb4ece05a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -453,7 +453,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index af7b06cac1a..2235601f614 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c65daea58e1e9d68865e903464874ecc70f8e801046cb24f632013017efc10ec","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -35,8 +35,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1245,18 +1245,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_6bc66bac4430d532_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_e04887ff6399ee76_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_6bc66bac4430d532_EOF + GH_AW_MCP_CONFIG_e04887ff6399ee76_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_d9641d6a3ab016d5_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_3dce01a2bfe90779_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1267,11 +1267,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_d9641d6a3ab016d5_EOF + GH_AW_MCP_CONFIG_3dce01a2bfe90779_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_4aa3a1f0b31d2e97_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_2ff5e4ac06d11000_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1281,7 +1281,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_4aa3a1f0b31d2e97_EOF + GH_AW_CODEX_SHELL_POLICY_2ff5e4ac06d11000_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index d3d00715ded..7b2695460fa 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"89d412f3c98e41897ede674da365bb039e3e784c9cd5abf6f8b862916658b7bd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -445,7 +445,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 4cde81f25b4..b2f7b16a9e0 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2ff10fe9f2dcb04d4c2a6ecb05897097f4c240d8cc6b495d9e06e9e197b7249a","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -446,7 +446,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index b288c588146..8a413fa58b2 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3691dd3be2a20f98a10ac7c34ed8ad1d01036cde3d57e6f577ff93380e511947","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -487,7 +487,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index 4dd4b24a974..5e701d8c590 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8462e03270163e1215840c10dda9f2a3c99344971640ebf816d283fd3d8787df","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -474,7 +474,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index d26d4b58f05..ad987847ddb 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"842cc3cd9a4047674f2b02570a60538ed72591f5941ee92f5d3a9e82a1024d04","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -442,7 +442,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1292,18 +1292,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_8d70d5e3cf85c1b0_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_675b1823621541b1_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_8d70d5e3cf85c1b0_EOF + GH_AW_MCP_CONFIG_675b1823621541b1_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_c9ddc4ef7d6f9c33_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_3e6c62743192dd56_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1314,11 +1314,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_c9ddc4ef7d6f9c33_EOF + GH_AW_MCP_CONFIG_3e6c62743192dd56_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_578382db2a77fa69_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_708aff8d28e4d08d_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1328,7 +1328,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_578382db2a77fa69_EOF + GH_AW_CODEX_SHELL_POLICY_708aff8d28e4d08d_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/smoke-ci.lock.yml b/.github/workflows/smoke-ci.lock.yml index c2e55df6415..9dd22c7050f 100644 --- a/.github/workflows/smoke-ci.lock.yml +++ b/.github/workflows/smoke-ci.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"059ab6ec82199369fa23ae6d33a5251bfd171ab7f51874d5564c5ced92e42cf3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # - actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -474,7 +474,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 710ca688b05..7a11477a23e 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"927f9f6b9f5efe873cfec5e4ba73745d960ede166f8f3b5174eb1579d1fadde4","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -50,8 +50,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -951,7 +951,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index b06f29cbd02..3da4b214a58 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5654399396a1259c6dd48c4a40a088432604138bc7c3df639ce30480fcb35914","agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions-ecosystem/action-add-labels","sha":"c96b68fec76a0987cd93957189e9abd0b9a72ff1","version":"v1.1.3"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions-ecosystem/action-add-labels","sha":"c96b68fec76a0987cd93957189e9abd0b9a72ff1","version":"v1.1.3"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -48,10 +48,10 @@ # - actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 -# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 +# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -569,7 +569,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} @@ -1524,7 +1524,7 @@ jobs: GH_AW_INFO_VERSION: "0.128.0" - name: Report TruffleHog secret scan failure if: always() && needs.trufflehog_scan.result == 'failure' && needs.trufflehog_scan.outputs.secrets_found == 'true' - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} GH_AW_TRUFFLEHOG_SECRETS_LOCATIONS: ${{ needs.trufflehog_scan.outputs.secrets_locations }} @@ -1825,18 +1825,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_99053b2ac6a26145_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_e4b6b69fe916258d_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_99053b2ac6a26145_EOF + GH_AW_MCP_CONFIG_e4b6b69fe916258d_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_746a1bc8fa365df9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_593bf5b152e9051e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1847,11 +1847,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_746a1bc8fa365df9_EOF + GH_AW_MCP_CONFIG_593bf5b152e9051e_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_e491394fcf2927b3_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_f03e2f71531e6eec_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1861,7 +1861,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_e491394fcf2927b3_EOF + GH_AW_CODEX_SHELL_POLICY_f03e2f71531e6eec_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -2119,21 +2119,21 @@ jobs: echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV" - name: Download agent output artifact id: download-agent - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) with: name: agent path: /tmp/gh-aw continue-on-error: true - name: Download cache-memory artifact id: download-cache-memory - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) with: name: cache-memory path: /tmp/gh-aw/cache-memory continue-on-error: true - name: Download repo-memory artifact id: download-repo-memory - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 (source v8) with: name: repo-memory-default path: /tmp/gh-aw/repo-memory/default diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index 934d491447e..cf713aa380b 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"751309f3333db9e3c89c7c683f347a10b616a5ae0bf1ca5b4733b0f409b235ed","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -47,8 +47,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -593,7 +593,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 10919ef76bf..5a95bb19a4e 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"55e430e79f4d85abfe9d63d9335d30f2e95aeb486662520e010facf5d69dde96","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -470,7 +470,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-crush.lock.yml b/.github/workflows/smoke-crush.lock.yml index 59f3b7d5cad..8f3977fb148 100644 --- a/.github/workflows/smoke-crush.lock.yml +++ b/.github/workflows/smoke-crush.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"329b4b5586c568be84404cdf0a490fa72992b5c607e0903b8079e0d4440a5779","strict":true,"agent_id":"crush","agent_model":"anthropic/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -38,8 +38,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -463,7 +463,7 @@ jobs: run: crush --version - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index 210fd6a1d35..28c652be3e2 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"85b5a3b65ef87996cdaedc38508224635f2689eed87b8326c08ce9b16622fbba","strict":true,"agent_id":"gemini"} -# gh-aw-manifest: {"version":1,"secrets":["GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -504,7 +504,7 @@ jobs: run: npm install --ignore-scripts -g @google/gemini-cli@0.39.1 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index 279b0835a05..de622f54548 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b1003f9978f885f853d300b2ad987e8b1aea3890aee421dabd0fa09cb4b971a6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -475,7 +475,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-opencode.lock.yml index 9ef42f107dd..b89361209c0 100644 --- a/.github/workflows/smoke-opencode.lock.yml +++ b/.github/workflows/smoke-opencode.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c8da9944790bcbc2ce4f322523e6ed295e10f8bfff03035b055507efe7d9d265","strict":true,"agent_id":"opencode","agent_model":"copilot/gpt-5"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -482,7 +482,7 @@ jobs: run: npm install --ignore-scripts -g opencode-ai@1.2.14 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-pi.lock.yml b/.github/workflows/smoke-pi.lock.yml index 7cc31d24cd8..ca93745f543 100644 --- a/.github/workflows/smoke-pi.lock.yml +++ b/.github/workflows/smoke-pi.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b1e013b6e840bc7549cb0c9476704b60abe2801552255b4b67f36139050107ac","strict":true,"agent_id":"pi","agent_model":"copilot/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -507,7 +507,7 @@ jobs: run: npm install --ignore-scripts -g @mariozechner/pi-coding-agent@0.72.1 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index 53fd9f8175d..ee400c1ff94 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8bcae22e790c498a4d0c4a24fc23384ec7be4e39f2bbf10b06bbed77bb070c0f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -477,7 +477,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-service-ports.lock.yml b/.github/workflows/smoke-service-ports.lock.yml index 61fffc78c70..5d1cd98f967 100644 --- a/.github/workflows/smoke-service-ports.lock.yml +++ b/.github/workflows/smoke-service-ports.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a5b657ee8f7595a2acbdb3d5278db112c5c657f57c878acb9b83cb527825d81","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -439,7 +439,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index 90cdff8a810..eada708b183 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f0607fe6bde2646e0a6787ae7b8e9f1720e71f24ae1e15aacf19bf179a7df25b","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -471,7 +471,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index 59e001db9dc..167e5fdf3fe 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7ad2a388d1b7febb011bc0d2e8c59f7ca477223d177668e831ae6d61cd6ecbdd","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-dotnet","sha":"c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7","version":"v5.2.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-java","sha":"be666c2fcd27ec809703dec50e508c2fdc7f6654","version":"v5.2.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-dotnet","sha":"c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7","version":"v5.2.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-java","sha":"be666c2fcd27ec809703dec50e508c2fdc7f6654","version":"v5.2.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0 # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 @@ -486,7 +486,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index 416659e9726..e1921705756 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5b785f55ba2a16a818befb3d75af99bead1554141d32d0929c26c762b0075dd6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GH_AW_SIDE_REPO_PAT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -501,7 +501,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index f54ad4f3ed1..5c130687b03 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ddb8e05964bc32fe984b90aae319b938e41cc7f0bb696763c9135f9c5a6d8d3d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -476,7 +476,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index a2189bd5748..6c9269769a0 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cd8e97a7f615e317b47964a4af22b5e68f1cf03782227c2b3ce30fec184155df","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -498,7 +498,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/spec-enforcer.lock.yml b/.github/workflows/spec-enforcer.lock.yml index 0bf207f0c07..e8f24a4cb80 100644 --- a/.github/workflows/spec-enforcer.lock.yml +++ b/.github/workflows/spec-enforcer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bc73e1af80d6d6839bfaea73c5b82fa6487f03d8f0967f7be1d6365e5637ca0c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -450,7 +450,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/spec-extractor.lock.yml b/.github/workflows/spec-extractor.lock.yml index bee36044d5b..86b9e19005b 100644 --- a/.github/workflows/spec-extractor.lock.yml +++ b/.github/workflows/spec-extractor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"30d0500d747927eecd78ada9b4bd489183deac8719d8b3c4eef4a0938c475c5c","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -42,8 +42,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -470,7 +470,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/spec-librarian.lock.yml b/.github/workflows/spec-librarian.lock.yml index 909375f05fb..cdc16ea5977 100644 --- a/.github/workflows/spec-librarian.lock.yml +++ b/.github/workflows/spec-librarian.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1c91a70d45517990f0f5862858bdc81137f00d8b0f20ce5e5609ca567f80cf19","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -452,7 +452,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/stale-pr-cleanup.lock.yml b/.github/workflows/stale-pr-cleanup.lock.yml index e2042aa009d..c16b0c3275e 100644 --- a/.github/workflows/stale-pr-cleanup.lock.yml +++ b/.github/workflows/stale-pr-cleanup.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"07e071eb8a3e78f3eecb8071e562e1f8291f76cb7a7610e5e007f8d4d12f0a43","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 6df6c0eea1f..0238c6dee5d 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3d486f087a351782a6e354e06c2f5c86e7df9c759febbd6215f239c91d000693","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -40,8 +40,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -488,7 +488,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index 29229491b7f..19d773c93bb 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"682df555d5bd68ce801fca0dc88cbb7c1ebe9925c2d9a5bea321de5c968627dc","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -35,8 +35,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -426,7 +426,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index 14c5c405352..cd0ef80e35a 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"416a2b1dd2dc494f163fa369a64b572475965c2933eb7030290a6d8fe9df011e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -403,7 +403,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 47ff0617c96..552788e54d0 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"61bb87cf8f4e4e45e119750e0136fb0c05c618bf29bcc15bd86d47ec6905e991","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"super-linter/super-linter","sha":"9e863354e3ff62e0727d37183162c4a88873df41","version":"v8.6.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"super-linter/super-linter","sha":"9e863354e3ff62e0727d37183162c4a88873df41","version":"v8.6.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -39,8 +39,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # - super-linter/super-linter@9e863354e3ff62e0727d37183162c4a88873df41 # v8.6.0 @@ -448,7 +448,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 1c24ccdc5a3..546698fc685 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"445f70b11f0886bd1c24002586a77f498a963b9233aefc4a70a4144a06fc650a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -492,7 +492,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index 1a0c54358fb..b3ef8430693 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1923db5027cf5c4c2f9ce83b1b767a9756d25feb8d81ad6e92ff73b11547d266","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -460,7 +460,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index a3a3892b624..c6ef7607efc 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6b68525cbb541559cacf99aa9becde57e6afaab123dbfb060e4a6bf039ef36de","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -424,7 +424,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index 7c49851edb5..521acdec0eb 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4bd8c07c60ebeaf4e44c563129d014bb1e8565000ce66a6a74cea2bc733a6c70","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -395,7 +395,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index 864e94c255e..4864284a24d 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"02b69e9f07f723d11b441d7a8ef964ac468aeab7cf843b342941455495f44ae6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_PROJECT_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -33,8 +33,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -395,7 +395,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-quality-sentinel.lock.yml b/.github/workflows/test-quality-sentinel.lock.yml index c65496a8f5c..6fa64ddcbd7 100644 --- a/.github/workflows/test-quality-sentinel.lock.yml +++ b/.github/workflows/test-quality-sentinel.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8e1b45ac0e2c883e76a948893cb57390962ce64083cf2bf9212463384ccdf65e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -36,8 +36,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -457,7 +457,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index bba06058b79..b3695278e17 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c1289924ef5c241c6bf7aede9e9822e6fe5e48cd5d6242834bb75725a19e6fd8","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -32,8 +32,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # # Container images used: @@ -399,7 +399,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 498d78b4693..95ce7c41349 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"577ea8cfb6c7deceadea08c2ab5886fe7d53ab7036eb5fcd25781786abb1faf6","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -492,7 +492,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index f2282b7c36d..ae23f792f6d 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c2cc60d3f0b2e08c4003a88f1111c6586c8aa381c9fbcd93d1c18d438ea2c500","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -44,8 +44,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -461,7 +461,7 @@ jobs: run: npm install -g @anthropic-ai/claude-code@2.1.126 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index 8894dd13e41..3857edce7e4 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b32a03269d4de4c56b7c2bcc20c1687c2c9fc6c07598ce34c4572755cf9cf991","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -41,8 +41,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -423,7 +423,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 0ee2030967a..655b8c7c424 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5b9d9a78fbf9a3ce2ea223df3fcc3202f958e5af92f92f7073887dc44f803481","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -43,8 +43,8 @@ # - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -518,7 +518,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index 7f4c9c97f10..67c87f197d0 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"28cee4b26065d99e23a77c48b6badda1a9a809b35234c3bf2a5ed5da1fa8007a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -425,7 +425,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index e01a981c2a8..bbaa1ab6497 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c7c27fdcf6914726f356b5ef809f5706a244156210ede52f506cd9b415db845f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -420,7 +420,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/visual-regression-checker.lock.yml b/.github/workflows/visual-regression-checker.lock.yml index 54ce4d5e1d1..85efe5f24dc 100644 --- a/.github/workflows/visual-regression-checker.lock.yml +++ b/.github/workflows/visual-regression-checker.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"de518c787427356d7922ca986fccae0ca6b733c7e08261ac451e190bb36973df","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -31,11 +31,11 @@ # - GITHUB_TOKEN # # Custom actions used: -# - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 +# - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 (source v6) # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -384,7 +384,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 (source v6) with: persist-credentials: false - name: Setup Node.js @@ -455,7 +455,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index b174f0ab710..2e8fc4d4088 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"445a084c156b33cd81f31a85d1ea641e71936cc3ca336cad6297150c3813cf3f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -34,8 +34,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -414,7 +414,7 @@ jobs: run: playwright-cli install --skills - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index c5178602ddf..0eda10a628c 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bc9fc36b154931308c4fc86cdc642f3fe5ff697072e4a39bd18724cc88dd40ac","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -438,7 +438,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index 6449666e49d..56bb8a63232 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c4d3ae709d0b09bf46341c2e6f1f18e49a86247b10f23da62fe5336d26267505","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -443,7 +443,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index 6a9cf78ea3f..826a69effa5 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -1,5 +1,5 @@ # gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b19e4f9fbc41efd6e4e858ca65aaa13884c32d90a7e8c53f823aff8067b7bbc1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -37,8 +37,8 @@ # Custom actions used: # - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 # - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 -# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 # - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 +# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) # - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 # - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 # @@ -374,7 +374,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - name: Build workflow index - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) with: script: "const fs = require('fs');\nconst path = require('path');\n\nconst workflowDir = '.github/workflows';\nconst entries = fs.readdirSync(workflowDir, { withFileTypes: true });\nconst index = [];\n\nfor (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {\n if (!entry.isFile() || !entry.name.endsWith('.md') || entry.name.startsWith('.')) {\n continue;\n }\n\n const workflowPath = path.join(workflowDir, entry.name);\n const content = fs.readFileSync(workflowPath, 'utf8');\n const frontmatterMatch = content.match(/^---\\n([\\s\\S]*?)\\n---/);\n const frontmatter = frontmatterMatch ? frontmatterMatch[1] : '';\n\n const imports = Array.from(frontmatter.matchAll(/^\\s*-\\s+(shared\\/\\S+)/gm), (m) => m[1]);\n let engine = null;\n const frontmatterLines = frontmatter.split('\\n');\n let inEngineBlock = false;\n\n for (const line of frontmatterLines) {\n if (!inEngineBlock) {\n if (/^engine:\\s*$/.test(line)) {\n inEngineBlock = true;\n }\n continue;\n }\n\n if (!/^[ \\t]/.test(line)) {\n break;\n }\n\n const engineIDMatch = line.match(/^\\s*id:\\s*(\\S+)/);\n if (engineIDMatch) {\n engine = engineIDMatch[1];\n break;\n }\n }\n\n index.push({\n file: entry.name,\n path: workflowPath,\n imports,\n engine,\n has_github_tools: frontmatter.includes('github:'),\n has_safe_outputs: frontmatter.includes('safe-outputs:'),\n frontmatter_preview: frontmatter.slice(0, 400)\n });\n}\n\nfs.mkdirSync('/tmp/gh-aw/agent', { recursive: true });\nfs.writeFileSync('/tmp/gh-aw/agent/workflow-index.json', JSON.stringify(index, null, 2) + '\\n', 'utf8');\ncore.info(`Indexed ${index.length} workflows`);\n" @@ -413,7 +413,7 @@ jobs: run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) env: GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }} GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }} diff --git a/pkg/cli/mcp_add.go b/pkg/cli/mcp_add.go index 9c485f453cb..f9679934746 100644 --- a/pkg/cli/mcp_add.go +++ b/pkg/cli/mcp_add.go @@ -1,6 +1,7 @@ package cli import ( + "context" "errors" "fmt" "os" @@ -18,7 +19,7 @@ import ( var mcpAddLog = logger.New("cli:mcp_add") // AddMCPTool adds an MCP tool to an agentic workflow -func AddMCPTool(workflowFile string, mcpServerID string, registryURL string, transportType string, customToolID string, verbose bool) error { +func AddMCPTool(ctx context.Context, workflowFile string, mcpServerID string, registryURL string, transportType string, customToolID string, verbose bool) error { mcpAddLog.Printf("Adding MCP tool: serverID=%s, registryURL=%s, transport=%s", mcpServerID, registryURL, transportType) // Resolve the workflow file path @@ -42,7 +43,7 @@ func AddMCPTool(workflowFile string, mcpServerID string, registryURL string, tra } mcpAddLog.Printf("Searching MCP registry for server: %s", mcpServerID) - servers, err := registryClient.SearchServers(mcpServerID) + servers, err := registryClient.SearchServers(ctx, mcpServerID) if err != nil { mcpAddLog.Printf("MCP registry search failed: %v", err) return fmt.Errorf("failed to search MCP registry: %w", err) @@ -342,7 +343,7 @@ The command will: if registryURL == "" { registryURL = string(constants.DefaultMCPRegistryURL) } - return listAvailableServers(registryURL, verbose) + return listAvailableServers(cmd.Context(), registryURL, verbose) } // If only workflow ID/file is provided, show error (need both workflow and server) @@ -354,7 +355,7 @@ The command will: workflowFile := args[0] mcpServerID := args[1] - return AddMCPTool(workflowFile, mcpServerID, registryURL, transportType, customToolID, verbose) + return AddMCPTool(cmd.Context(), workflowFile, mcpServerID, registryURL, transportType, customToolID, verbose) }, } diff --git a/pkg/cli/mcp_add_test.go b/pkg/cli/mcp_add_test.go index fe2e9a7aeb5..97199171147 100644 --- a/pkg/cli/mcp_add_test.go +++ b/pkg/cli/mcp_add_test.go @@ -3,6 +3,7 @@ package cli import ( + "context" "encoding/json" "net/http" "net/http/httptest" @@ -117,7 +118,7 @@ This is a test workflow. defer registryServer.Close() // Test adding MCP tool - err = AddMCPTool("test-workflow", "notion", registryServer.URL, "", "", false) + err = AddMCPTool(context.Background(), "test-workflow", "notion", registryServer.URL, "", "", false) if err != nil { t.Fatalf("AddMCPTool failed: %v", err) } @@ -204,7 +205,7 @@ func TestAddMCPTool_WorkflowNotFound(t *testing.T) { defer registryServer.Close() // Test with nonexistent workflow - err = AddMCPTool("nonexistent-workflow", "notion", registryServer.URL, "", "", false) + err = AddMCPTool(context.Background(), "nonexistent-workflow", "notion", registryServer.URL, "", "", false) if err == nil { t.Fatal("Expected error for nonexistent workflow, got nil") } @@ -311,7 +312,7 @@ This is a test workflow. defer registryServer.Close() // Test adding tool that already exists (search for the full server name) - err = AddMCPTool("test-workflow", "io.github.makenotion/notion-mcp-server", registryServer.URL, "", "", false) + err = AddMCPTool(context.Background(), "test-workflow", "io.github.makenotion/notion-mcp-server", registryServer.URL, "", "", false) if err == nil { t.Fatal("Expected error for existing tool, got nil") } @@ -414,7 +415,7 @@ This is a test workflow. // Test adding tool with custom ID customToolID := "my-notion" - err = AddMCPTool("test-workflow", "notion", registryServer.URL, "", customToolID, false) + err = AddMCPTool(context.Background(), "test-workflow", "notion", registryServer.URL, "", customToolID, false) if err != nil { t.Fatalf("AddMCPTool failed: %v", err) } @@ -565,7 +566,7 @@ func TestListAvailableServers(t *testing.T) { defer testServer.Close() // Test listing servers - err := listAvailableServers(testServer.URL, false) + err := listAvailableServers(context.Background(), testServer.URL, false) if err != nil { t.Errorf("listAvailableServers failed: %v", err) } diff --git a/pkg/cli/mcp_registry.go b/pkg/cli/mcp_registry.go index 4a02b3ce103..5bea30e92ec 100644 --- a/pkg/cli/mcp_registry.go +++ b/pkg/cli/mcp_registry.go @@ -1,6 +1,7 @@ package cli import ( + "context" "encoding/json" "fmt" "io" @@ -52,8 +53,8 @@ func NewMCPRegistryClient(registryURL string) *MCPRegistryClient { } // createRegistryRequest creates an HTTP request with appropriate headers for the MCP registry -func (c *MCPRegistryClient) createRegistryRequest(method, url string) (*http.Request, error) { - req, err := http.NewRequest(method, url, nil) +func (c *MCPRegistryClient) createRegistryRequest(ctx context.Context, method, url string) (*http.Request, error) { + req, err := http.NewRequestWithContext(ctx, method, url, nil) if err != nil { return nil, err } @@ -66,14 +67,14 @@ func (c *MCPRegistryClient) createRegistryRequest(method, url string) (*http.Req } // SearchServers searches for MCP servers in the registry by fetching all servers and filtering locally -func (c *MCPRegistryClient) SearchServers(query string) ([]MCPRegistryServerForProcessing, error) { +func (c *MCPRegistryClient) SearchServers(ctx context.Context, query string) ([]MCPRegistryServerForProcessing, error) { mcpRegistryLog.Printf("Searching MCP servers: query=%q", query) // Always use servers endpoint for listing all servers searchURL := c.registryURL + "/servers" // Create HTTP request with proper headers - req, err := c.createRegistryRequest("GET", searchURL) + req, err := c.createRegistryRequest(ctx, "GET", searchURL) if err != nil { return nil, fmt.Errorf("failed to create registry request: %w", err) } diff --git a/pkg/cli/mcp_registry_improvements_test.go b/pkg/cli/mcp_registry_improvements_test.go index ec9ad57237c..dcc8e9bd990 100644 --- a/pkg/cli/mcp_registry_improvements_test.go +++ b/pkg/cli/mcp_registry_improvements_test.go @@ -3,6 +3,7 @@ package cli import ( + "context" "net/http" "net/http/httptest" "strings" @@ -62,7 +63,7 @@ func TestMCPRegistryClient_ImprovedErrorHandling(t *testing.T) { client := NewMCPRegistryClient(server.URL) // Test SearchServers - _, err := client.SearchServers("") + _, err := client.SearchServers(context.Background(), "") if err == nil { t.Fatalf("Expected error for status %d, got nil", tc.statusCode) } @@ -160,7 +161,7 @@ func TestMCPRegistryClient_FlexibleValidation(t *testing.T) { } } else { // For custom registry, actually call the API - _, err := client.SearchServers("") + _, err := client.SearchServers(context.Background(), "") hasError := err != nil if hasError != tc.expectError { diff --git a/pkg/cli/mcp_registry_list.go b/pkg/cli/mcp_registry_list.go index 8063efede44..f29c62e32fa 100644 --- a/pkg/cli/mcp_registry_list.go +++ b/pkg/cli/mcp_registry_list.go @@ -1,6 +1,7 @@ package cli import ( + "context" "fmt" "os" @@ -11,7 +12,7 @@ import ( var mcpRegistryListLog = logger.New("cli:mcp_registry_list") // listAvailableServers shows a list of available MCP servers from the registry -func listAvailableServers(registryURL string, verbose bool) error { +func listAvailableServers(ctx context.Context, registryURL string, verbose bool) error { mcpRegistryListLog.Printf("Listing available MCP servers: registry_url=%s", registryURL) // Create registry client registryClient := NewMCPRegistryClient(registryURL) @@ -21,7 +22,7 @@ func listAvailableServers(registryURL string, verbose bool) error { fmt.Fprintln(os.Stderr, console.FormatInfoMessage("Fetching available MCP servers from registry: "+registryClient.registryURL)) } - servers, err := registryClient.SearchServers("") + servers, err := registryClient.SearchServers(ctx, "") if err != nil { mcpRegistryListLog.Printf("Failed to fetch MCP servers: %v", err) return fmt.Errorf("failed to fetch MCP servers: %w", err) diff --git a/pkg/cli/mcp_registry_live_test.go b/pkg/cli/mcp_registry_live_test.go index 5f57af97de7..395474f94f6 100644 --- a/pkg/cli/mcp_registry_live_test.go +++ b/pkg/cli/mcp_registry_live_test.go @@ -3,6 +3,7 @@ package cli import ( + "context" "net/http" "strings" "testing" @@ -18,7 +19,7 @@ func TestMCPRegistryClient_LiveSearchServers(t *testing.T) { // Test 1: Search for all servers (empty query) t.Run("search_all_servers", func(t *testing.T) { - servers, err := client.SearchServers("") + servers, err := client.SearchServers(context.Background(), "") if err != nil { // Check if it's a network/firewall issue if strings.Contains(err.Error(), "network") || strings.Contains(err.Error(), "firewall") || @@ -56,7 +57,7 @@ func TestMCPRegistryClient_LiveSearchServers(t *testing.T) { // Test 2: Search for specific servers by query t.Run("search_with_query", func(t *testing.T) { // Search for GitHub-related servers - servers, err := client.SearchServers("github") + servers, err := client.SearchServers(context.Background(), "github") if err != nil { if strings.Contains(err.Error(), "network") || strings.Contains(err.Error(), "firewall") || strings.Contains(err.Error(), "403") || strings.Contains(err.Error(), "connection") { @@ -83,7 +84,7 @@ func TestMCPRegistryClient_LiveSearchServers(t *testing.T) { // Test 3: Verify different transport types are supported t.Run("verify_transport_types", func(t *testing.T) { - servers, err := client.SearchServers("") + servers, err := client.SearchServers(context.Background(), "") if err != nil { if strings.Contains(err.Error(), "network") || strings.Contains(err.Error(), "firewall") || strings.Contains(err.Error(), "403") || strings.Contains(err.Error(), "connection") { @@ -112,7 +113,7 @@ func TestMCPRegistryClient_LiveResponseStructure(t *testing.T) { // Create client with default production registry URL client := NewMCPRegistryClient(string(constants.DefaultMCPRegistryURL)) - servers, err := client.SearchServers("") + servers, err := client.SearchServers(context.Background(), "") if err != nil { if strings.Contains(err.Error(), "network") || strings.Contains(err.Error(), "firewall") || strings.Contains(err.Error(), "403") || strings.Contains(err.Error(), "connection") || diff --git a/pkg/cli/mcp_registry_test.go b/pkg/cli/mcp_registry_test.go index 39615f9c40c..0c3ed323769 100644 --- a/pkg/cli/mcp_registry_test.go +++ b/pkg/cli/mcp_registry_test.go @@ -3,6 +3,7 @@ package cli import ( + "context" "net/http" "net/http/httptest" "testing" @@ -74,7 +75,7 @@ func TestMCPRegistryClient_SearchServers(t *testing.T) { client := NewMCPRegistryClient(testServer.URL) // Test search - servers, err := client.SearchServers("notion") + servers, err := client.SearchServers(context.Background(), "notion") if err != nil { t.Fatalf("SearchServers failed: %v", err) } From c1390d12b85403a960464a70d3df638056fac832 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 02:49:51 -0700 Subject: [PATCH 04/16] Align `pkg/cli` constructor semantics by making `NewFileTracker` lazy and non-erroring (#30959) --- pkg/cli/add_command.go | 9 +----- pkg/cli/add_workflow_pr.go | 5 +--- pkg/cli/file_tracker.go | 24 +++++++++++---- pkg/cli/file_tracker_test.go | 58 +++++++++++++++++++++++------------- pkg/cli/packages_test.go | 12 ++------ 5 files changed, 61 insertions(+), 47 deletions(-) diff --git a/pkg/cli/add_command.go b/pkg/cli/add_command.go index 85adfc43f1d..afd5ef1ffad 100644 --- a/pkg/cli/add_command.go +++ b/pkg/cli/add_command.go @@ -240,14 +240,7 @@ func AddResolvedWorkflows(workflowStrings []string, resolved *ResolvedWorkflows, func addWorkflows(workflows []*ResolvedWorkflow, opts AddOptions) error { addLog.Printf("Adding %d workflow(s) to repository", len(workflows)) // Create file tracker for all operations - tracker, err := NewFileTracker() - if err != nil { - // If we can't create a tracker (e.g., not in git repo), fall back to non-tracking behavior - if opts.Verbose { - fmt.Fprintln(os.Stderr, console.FormatWarningMessage(fmt.Sprintf("Could not create file tracker: %v", err))) - } - tracker = nil - } + tracker := NewFileTracker() return addWorkflowsWithTracking(workflows, tracker, opts) } diff --git a/pkg/cli/add_workflow_pr.go b/pkg/cli/add_workflow_pr.go index 54df1f6adda..5d37eda45a4 100644 --- a/pkg/cli/add_workflow_pr.go +++ b/pkg/cli/add_workflow_pr.go @@ -70,10 +70,7 @@ func addWorkflowsWithPR(workflows []*ResolvedWorkflow, opts AddOptions) (int, st } // Create file tracker for rollback capability - tracker, err := NewFileTracker() - if err != nil { - return 0, "", fmt.Errorf("failed to create file tracker: %w", err) - } + tracker := NewFileTracker() // Ensure we switch back to original branch on exit defer func() { diff --git a/pkg/cli/file_tracker.go b/pkg/cli/file_tracker.go index e03114fe7a4..15aebf1e02f 100644 --- a/pkg/cli/file_tracker.go +++ b/pkg/cli/file_tracker.go @@ -24,18 +24,27 @@ type FileTracker struct { } // NewFileTracker creates a new file tracker -func NewFileTracker() (*FileTracker, error) { +func NewFileTracker() *FileTracker { fileTrackerLog.Print("Creating new file tracker") + return &FileTracker{ + OriginalContent: make(map[string][]byte), + } +} + +func (ft *FileTracker) ensureGitRoot() error { + if ft.gitRoot != "" { + return nil + } + gitRoot, err := gitutil.FindGitRoot() if err != nil { fileTrackerLog.Printf("Failed to find git root: %v", err) - return nil, fmt.Errorf("file tracker requires being in a git repository: %w", err) + return fmt.Errorf("file tracker requires being in a git repository: %w", err) } + + ft.gitRoot = gitRoot fileTrackerLog.Printf("File tracker initialized with git root: %s", gitRoot) - return &FileTracker{ - OriginalContent: make(map[string][]byte), - gitRoot: gitRoot, - }, nil + return nil } // TrackCreated adds a file to the created files list @@ -95,6 +104,9 @@ func (ft *FileTracker) StageAllFiles(verbose bool) error { } // Stage all files in a single git add command + if err := ft.ensureGitRoot(); err != nil { + return err + } args := append([]string{"add"}, allFiles...) cmd := exec.Command("git", args...) cmd.Dir = ft.gitRoot diff --git a/pkg/cli/file_tracker_test.go b/pkg/cli/file_tracker_test.go index 0eb7431802f..9cee77a951b 100644 --- a/pkg/cli/file_tracker_test.go +++ b/pkg/cli/file_tracker_test.go @@ -7,6 +7,7 @@ import ( "os/exec" "path/filepath" "slices" + "strings" "testing" ) @@ -34,10 +35,7 @@ func TestFileTracker_CreationAndTracking(t *testing.T) { } // Create file tracker - tracker, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker := NewFileTracker() // Create test files testFile1 := filepath.Join(tempDir, "test1.md") @@ -106,10 +104,7 @@ func TestFileTracker_ModifiedFiles(t *testing.T) { } // Create file tracker - tracker, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker := NewFileTracker() // Create existing file testFile := filepath.Join(tempDir, "existing.md") @@ -211,10 +206,7 @@ func TestFileTracker_RollbackAllFiles(t *testing.T) { } // Create file tracker - tracker, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker := NewFileTracker() // Create an existing file existingFile := filepath.Join(tempDir, "existing.md") @@ -301,10 +293,7 @@ This uses reaction. } // Create file tracker - tracker, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker := NewFileTracker() // Compile the workflow with tracking if err := compileWorkflowWithTracking(workflowFileWithReaction, false, false, "", tracker); err != nil { @@ -343,10 +332,7 @@ This does NOT use ai-reaction. } // Create new file tracker for second test - tracker2, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker2 := NewFileTracker() // Remove the existing reaction action to test it's not created again // (Note: Since reaction is now inline, this removal step is no longer needed) @@ -359,3 +345,35 @@ This does NOT use ai-reaction. // Note: Since reaction feature now uses inline GitHub Scripts instead of separate action files, // we don't expect any reaction action files to be created or tracked } + +func TestFileTracker_StageAllFiles_NonGitRepo(t *testing.T) { + tempDir, err := os.MkdirTemp("", "file-tracker-non-git") + if err != nil { + t.Fatalf("Failed to create temp dir: %v", err) + } + defer os.RemoveAll(tempDir) + + oldWd, _ := os.Getwd() + defer func() { + _ = os.Chdir(oldWd) + }() + if err := os.Chdir(tempDir); err != nil { + t.Fatalf("Failed to change to temp directory: %v", err) + } + + testFile := filepath.Join(tempDir, "test.md") + if err := os.WriteFile(testFile, []byte("content"), 0644); err != nil { + t.Fatalf("Failed to write test file: %v", err) + } + + tracker := NewFileTracker() + tracker.TrackCreated(testFile) + + err = tracker.StageAllFiles(false) + if err == nil { + t.Fatal("Expected staging in non-git directory to fail") + } + if !strings.Contains(err.Error(), "file tracker requires being in a git repository") { + t.Fatalf("Expected non-git error message, got: %v", err) + } +} diff --git a/pkg/cli/packages_test.go b/pkg/cli/packages_test.go index b18e5ade120..f65607ae0b5 100644 --- a/pkg/cli/packages_test.go +++ b/pkg/cli/packages_test.go @@ -399,10 +399,7 @@ func TestCopyIncludeDependenciesFromPackageWithForce_FileTracker(t *testing.T) { t.Fatalf("Failed to write source file: %v", err) } - tracker, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker := NewFileTracker() // Test 1: New file should be tracked as created deps := []IncludeDependency{ @@ -413,7 +410,7 @@ func TestCopyIncludeDependenciesFromPackageWithForce_FileTracker(t *testing.T) { }, } - err = copyIncludeDependenciesFromPackageWithForce(deps, targetDir, false, false, tracker) + err := copyIncludeDependenciesFromPackageWithForce(deps, targetDir, false, false, tracker) if err != nil { t.Errorf("Unexpected error: %v", err) } @@ -425,10 +422,7 @@ func TestCopyIncludeDependenciesFromPackageWithForce_FileTracker(t *testing.T) { } // Test 2: Modified file should be tracked as modified - tracker2, err := NewFileTracker() - if err != nil { - t.Fatalf("Failed to create file tracker: %v", err) - } + tracker2 := NewFileTracker() // Update source content if err := os.WriteFile(sourceFile, []byte("New Content"), 0644); err != nil { t.Fatalf("Failed to update source file: %v", err) From 8f3a4abb2f43f239988ab8859c7f166f5c97cb51 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 03:01:34 -0700 Subject: [PATCH 05/16] Add `fields` + `allowed-fields` support to `create_issue` safe output and require issue type in smoke-copilot (#30919) --- .github/workflows/smoke-copilot.lock.yml | 3 + .github/workflows/smoke-copilot.md | 5 +- actions/setup/js/create_issue.cjs | 285 ++++++++++++++++++ actions/setup/js/create_issue.test.cjs | 135 +++++++++ actions/setup/js/safe_outputs_tools.json | 19 ++ actions/setup/js/types/safe-outputs.d.ts | 7 + .../reference/safe-outputs-specification.md | 14 +- .../content/docs/reference/safe-outputs.md | 1 + pkg/parser/schemas/main_workflow_schema.json | 7 + .../compiler_safe_outputs_handlers.go | 1 + pkg/workflow/create_issue.go | 1 + .../create_issue_handler_config_test.go | 10 + pkg/workflow/js/safe_outputs_tools.json | 25 ++ .../safe_outputs_validation_config.go | 1 + pkg/workflow/tool_description_enhancer.go | 38 ++- .../tool_description_enhancer_test.go | 35 +++ schemas/agent-output.json | 19 ++ 17 files changed, 587 insertions(+), 19 deletions(-) create mode 100644 pkg/workflow/tool_description_enhancer_test.go diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 026c7832d34..823f0eb9355 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -859,6 +859,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-copilot.md b/.github/workflows/smoke-copilot.md index a88b2b2e708..bed13a70330 100644 --- a/.github/workflows/smoke-copilot.md +++ b/.github/workflows/smoke-copilot.md @@ -181,7 +181,7 @@ These are **not** MCP protocol tools — they are bash executables. Call them wi ## Output 1. **Create an issue** with a summary of the smoke test run: - - Use a temporary ID (e.g. `aw_smoke1`) for the issue so you can reference it later + - Use the temporary ID `aw_smoke1` for the issue so you can reference it later - Title: "Smoke Test: Copilot - ${{ github.run_id }}" - Body should include: - Test results (✅ or ❌ for each test) @@ -190,7 +190,7 @@ These are **not** MCP protocol tools — they are bash executables. Call them wi - Timestamp - Pull request author and assignees -2. **Set Issue Type**: Use the `set_issue_type` safe-output tool with `issue_number: "aw_smoke1"` (the temporary ID from step 1) and `issue_type: "Bug"` to set the type of the just-created smoke test issue. +2. **Set Issue Type** (**required**): Use the `set_issue_type` safe-output tool with `issue_number: "aw_smoke1"` (the temporary ID from step 1) and `issue_type: "Bug"` to set the type of the just-created smoke test issue. 3. **Only if this workflow was triggered by a pull_request event**: Use the `add_comment` tool to add a **very brief** comment (max 5-10 lines) to the triggering pull request (omit the `item_number` parameter to auto-target the triggering PR) with: - PR titles only (no descriptions) @@ -214,4 +214,3 @@ model: small description: Summarizes the content of a file in a few concise sentences --- You are a file summarization assistant. When given a file path, read the file and return a brief summary (2–4 sentences) describing its purpose and key contents. Be concise and factual. - diff --git a/actions/setup/js/create_issue.cjs b/actions/setup/js/create_issue.cjs index 4cc87ba43bd..92265e094b0 100644 --- a/actions/setup/js/create_issue.cjs +++ b/actions/setup/js/create_issue.cjs @@ -27,6 +27,7 @@ const { isStagedMode } = require("./safe_output_helpers.cjs"); const { buildWorkflowRunUrl } = require("./workflow_metadata_helpers.cjs"); const { MAX_LABELS, MAX_ASSIGNEES } = require("./constants.cjs"); const { findAgent, getIssueDetails, assignAgentToIssue } = require("./assign_agent_helpers.cjs"); +const ISSUE_FIELD_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/; /** * Create a dedicated GitHub client for copilot assignment operations. @@ -196,6 +197,254 @@ function createParentIssueTemplate(groupId, titlePrefix, workflowName, workflowS return { title, body }; } +/** + * Normalize and validate issue fields payload for create_issue. + * Ensures fields are objects with a non-empty name and string/number value. + * @param {any} fields + * @returns {Array<{name: string, value: string|number}>} + */ +function normalizeIssueFields(fields) { + if (fields == null) { + return []; + } + if (!Array.isArray(fields)) { + throw new Error(`${ERR_VALIDATION}: create_issue 'fields' must be an array of objects`); + } + + return fields.map((field, index) => { + if (!field || typeof field !== "object" || Array.isArray(field)) { + throw new Error(`${ERR_VALIDATION}: create_issue 'fields[${index}]' must be an object with 'name' and 'value'`); + } + + const name = typeof field.name === "string" ? field.name.trim() : ""; + if (!name) { + throw new Error(`${ERR_VALIDATION}: create_issue 'fields[${index}].name' must be a non-empty string`); + } + + if (!Object.prototype.hasOwnProperty.call(field, "value")) { + throw new Error(`${ERR_VALIDATION}: create_issue 'fields[${index}]' is missing required 'value'`); + } + + const value = field.value; + if ((typeof value !== "string" && typeof value !== "number") || (typeof value === "number" && !Number.isFinite(value))) { + throw new Error(`${ERR_VALIDATION}: create_issue 'fields[${index}].value' for "${name}" must be a string or number`); + } + + return { name, value }; + }); +} + +/** + * Parse allowed issue field names from config. + * @param {string[]|string|undefined} value + * @returns {string[]} + */ +function parseAllowedIssueFields(value) { + if (value == null || value === "") { + return []; + } + const raw = Array.isArray(value) ? value : String(value).split(","); + const uniqueFields = new Set(); + for (const item of raw) { + const normalized = String(item).trim(); + if (normalized) { + uniqueFields.add(normalized); + } + } + return [...uniqueFields]; +} + +/** + * Validate requested issue fields against configured allowed-fields. + * @param {Array<{name: string, value: string|number}>} issueFields + * @param {string[]} allowedFields + * @returns {void} + */ +function validateAllowedIssueFields(issueFields, allowedFields) { + if (!Array.isArray(issueFields) || issueFields.length === 0) { + return; + } + if (!Array.isArray(allowedFields) || allowedFields.length === 0 || allowedFields.includes("*")) { + return; + } + + // We intentionally normalize to lowercase for comparisons because issue field names + // come from user-provided config/output and repository metadata, and should match + // even when case differs (e.g., "priority" vs "Priority"). + const allowedFieldSet = new Set(allowedFields.map(field => field.toLowerCase())); + for (const field of issueFields) { + if (!allowedFieldSet.has(field.name.toLowerCase())) { + throw new Error(`${ERR_VALIDATION}: issue field "${field.name}" is not in the allowed-fields list: ${allowedFields.join(", ")}`); + } + } +} + +/** + * Resolve issue node ID from issue number. + * Queries GraphQL for the issue node ID required by field mutations. + * @param {Object} githubClient + * @param {string} owner + * @param {string} repo + * @param {number} issueNumber + * @returns {Promise} + */ +async function resolveIssueNodeId(githubClient, owner, repo, issueNumber) { + const result = await githubClient.graphql( + `query($owner: String!, $repo: String!, $issueNumber: Int!) { + repository(owner: $owner, name: $repo) { + issue(number: $issueNumber) { + id + } + } + }`, + { owner, repo, issueNumber } + ); + + const issueId = result?.repository?.issue?.id; + if (!issueId) { + throw new Error(`${ERR_VALIDATION}: could not resolve node ID for issue #${issueNumber}`); + } + return issueId; +} + +/** + * Fetch issue field metadata from repository. + * Returns configured field definitions including types, options, and iterations. + * @param {Object} githubClient + * @param {string} owner + * @param {string} repo + * @returns {Promise>} + */ +async function fetchIssueFields(githubClient, owner, repo) { + const result = await githubClient.graphql( + `query($owner: String!, $repo: String!) { + repository(owner: $owner, name: $repo) { + issueFields(first: 100) { + nodes { + __typename + ... on IssueField { + id + name + dataType + } + ... on IssueFieldSingleSelect { + id + name + dataType + options { + id + name + } + } + ... on IssueFieldIteration { + id + name + dataType + configuration { + iterations { + id + title + } + } + } + } + } + } + }`, + { owner, repo } + ); + + return Array.isArray(result?.repository?.issueFields?.nodes) ? result.repository.issueFields.nodes.filter(Boolean) : []; +} + +/** + * Build GraphQL setIssueFieldValue mutation input from named field values. + * Maps safe-output field names/values to typed GraphQL mutation payloads. + * @param {Array<{name: string, value: string|number}>} requestedFields + * @param {Array} availableFields + * @returns {Array} + */ +function buildIssueFieldMutationInput(requestedFields, availableFields) { + const availableNames = availableFields.map(field => field?.name).filter(Boolean); + + return requestedFields.map(field => { + const matchedField = availableFields.find(available => typeof available?.name === "string" && available.name.toLowerCase() === field.name.toLowerCase()); + if (!matchedField) { + throw new Error(`${ERR_VALIDATION}: unknown issue field "${field.name}". Available fields: ${availableNames.join(", ") || "(none)"}`); + } + + const dataType = typeof matchedField.dataType === "string" ? matchedField.dataType.toUpperCase() : "TEXT"; + + if (dataType === "NUMBER") { + const numberValue = Number(field.value); + if (!Number.isFinite(numberValue)) { + throw new Error(`${ERR_VALIDATION}: issue field "${field.name}" requires a numeric value`); + } + return { fieldId: matchedField.id, numberValue }; + } + + if (dataType === "DATE") { + if (typeof field.value !== "string" || !ISSUE_FIELD_DATE_PATTERN.test(field.value)) { + throw new Error(`${ERR_VALIDATION}: issue field "${field.name}" requires a date value in YYYY-MM-DD format`); + } + return { fieldId: matchedField.id, dateValue: field.value }; + } + + if (dataType === "SINGLE_SELECT") { + const options = Array.isArray(matchedField.options) ? matchedField.options : []; + const selectedOption = options.find(option => typeof option?.name === "string" && option.name.toLowerCase() === String(field.value).toLowerCase()); + if (!selectedOption) { + throw new Error(`${ERR_VALIDATION}: invalid option "${field.value}" for issue field "${field.name}". Available options: ${options.map(option => option.name).join(", ") || "(none)"}`); + } + return { fieldId: matchedField.id, singleSelectOptionId: selectedOption.id }; + } + + if (dataType === "ITERATION") { + const iterations = matchedField?.configuration?.iterations; + const availableIterations = Array.isArray(iterations) ? iterations : []; + const selectedIteration = availableIterations.find(iteration => typeof iteration?.title === "string" && iteration.title.toLowerCase() === String(field.value).toLowerCase()); + if (!selectedIteration) { + throw new Error(`${ERR_VALIDATION}: invalid iteration "${field.value}" for issue field "${field.name}". Available iterations: ${availableIterations.map(iteration => iteration.title).join(", ") || "(none)"}`); + } + return { fieldId: matchedField.id, singleSelectOptionId: selectedIteration.id }; + } + + return { fieldId: matchedField.id, textValue: String(field.value) }; + }); +} + +/** + * Apply issue field values to a newly-created issue. + * Resolves metadata and sends the setIssueFieldValue GraphQL mutation. + * @param {{githubClient: Object, owner: string, repo: string, issueNumber: number, fields: Array<{name: string, value: string|number}>}} params + * @returns {Promise} + */ +async function applyIssueFields({ githubClient, owner, repo, issueNumber, fields }) { + if (!Array.isArray(fields) || fields.length === 0) { + return; + } + + const issueId = await resolveIssueNodeId(githubClient, owner, repo, issueNumber); + const availableFields = await fetchIssueFields(githubClient, owner, repo); + const issueFields = buildIssueFieldMutationInput(fields, availableFields); + + await githubClient.graphql( + `mutation($input: SetIssueFieldValueInput!) { + setIssueFieldValue(input: $input) { + issue { + id + } + } + }`, + { + input: { + issueId, + issueFields, + }, + } + ); +} + /** * Main handler factory for create_issue * Returns a message handler function that processes individual create_issue messages @@ -204,6 +453,7 @@ function createParentIssueTemplate(groupId, titlePrefix, workflowName, workflowS async function main(config = {}) { // Extract configuration const envLabels = config.labels ? (Array.isArray(config.labels) ? config.labels : config.labels.split(",")).map(label => String(label).trim()).filter(Boolean) : []; + const allowedIssueFields = parseAllowedIssueFields(config.allowed_fields); const envAssignees = config.assignees ? (Array.isArray(config.assignees) ? config.assignees : config.assignees.split(",")).map(assignee => String(assignee).trim()).filter(Boolean) : []; const titlePrefix = config.title_prefix ?? ""; const expiresHours = config.expires ? parseInt(String(config.expires), 10) : 0; @@ -245,6 +495,9 @@ async function main(config = {}) { if (envAssignees.length > 0) { core.info(`Default assignees: ${envAssignees.join(", ")}`); } + if (allowedIssueFields.length > 0 && !allowedIssueFields.includes("*")) { + core.info(`Allowed issue fields: ${allowedIssueFields.join(", ")}`); + } if (titlePrefix) { core.info(`Title prefix: ${titlePrefix}`); } @@ -383,6 +636,14 @@ async function main(config = {}) { .filter(Boolean) .filter((assignee, index, arr) => arr.indexOf(assignee) === index); + let issueFields; + try { + issueFields = normalizeIssueFields(message.fields); + validateAllowedIssueFields(issueFields, allowedIssueFields); + } catch (error) { + return { success: false, error: getErrorMessage(error) }; + } + // Check if copilot is in the assignees list const hasCopilot = assignees.includes("copilot"); @@ -562,6 +823,9 @@ async function main(config = {}) { if (assignees.length > 0) { core.info(`Assignees: ${assignees.join(", ")}`); } + if (issueFields.length > 0) { + core.info(`Issue fields: ${issueFields.map(field => field.name).join(", ")}`); + } core.info(`Body length: ${body.length}`); // If in staged mode, preview the issue without creating it @@ -576,6 +840,7 @@ async function main(config = {}) { title, labels, assignees, + fields: issueFields, bodyLength: body.length, temporaryId, }, @@ -600,6 +865,26 @@ async function main(config = {}) { core.info(`Created issue ${qualifiedItemRepo}#${issue.number}: ${issue.html_url}`); createdIssues.push({ ...issue, _repo: qualifiedItemRepo }); + if (issueFields.length > 0) { + try { + await applyIssueFields({ + githubClient, + owner: repoParts.owner, + repo: repoParts.repo, + issueNumber: issue.number, + fields: issueFields, + }); + core.info(`Applied ${issueFields.length} issue field(s) to ${qualifiedItemRepo}#${issue.number}`); + } catch (error) { + const fieldError = getErrorMessage(error); + core.error(`✗ Failed to apply issue fields on ${qualifiedItemRepo}#${issue.number}: ${fieldError}`); + return { + success: false, + error: `Issue ${qualifiedItemRepo}#${issue.number} was created, but issue fields could not be applied: ${fieldError}`, + }; + } + } + // Store the mapping of temporary_id -> {repo, number} // temporaryId is guaranteed to be non-null because we checked tempIdResult.error above const normalizedTempId = normalizeTemporaryId(String(temporaryId)); diff --git a/actions/setup/js/create_issue.test.cjs b/actions/setup/js/create_issue.test.cjs index c1e87e2d1ca..7e47f5acb9b 100644 --- a/actions/setup/js/create_issue.test.cjs +++ b/actions/setup/js/create_issue.test.cjs @@ -195,6 +195,141 @@ describe("create_issue", () => { }); }); + describe("issue fields handling", () => { + it("should apply issue fields after issue creation", async () => { + mockGithub.graphql + .mockResolvedValueOnce({ + repository: { + issue: { id: "ISSUE_NODE_ID" }, + }, + }) + .mockResolvedValueOnce({ + repository: { + issueFields: { + nodes: [{ id: "FIELD_PRIORITY", name: "Priority", dataType: "SINGLE_SELECT", options: [{ id: "OPTION_HIGH", name: "High" }] }], + }, + }, + }) + .mockResolvedValueOnce({ + setIssueFieldValue: { + issue: { id: "ISSUE_NODE_ID" }, + }, + }); + + const handler = await main({}); + const result = await handler({ + title: "Issue with fields", + body: "Body", + fields: [{ name: "Priority", value: "High" }], + }); + + expect(result.success).toBe(true); + const mutationCall = mockGithub.graphql.mock.calls.find(([query]) => query.includes("setIssueFieldValue")); + expect(mutationCall).toBeDefined(); + expect(mutationCall[1].input.issueFields).toEqual([{ fieldId: "FIELD_PRIORITY", singleSelectOptionId: "OPTION_HIGH" }]); + }); + + it("should return actionable error for unknown issue field name", async () => { + mockGithub.graphql + .mockResolvedValueOnce({ + repository: { + issue: { id: "ISSUE_NODE_ID" }, + }, + }) + .mockResolvedValueOnce({ + repository: { + issueFields: { + nodes: [{ id: "FIELD_PRIORITY", name: "Priority", dataType: "TEXT" }], + }, + }, + }); + + const handler = await main({}); + const result = await handler({ + title: "Issue with invalid field", + body: "Body", + fields: [{ name: "Iteration", value: "Sprint 1" }], + }); + + expect(result.success).toBe(false); + expect(result.error).toContain('unknown issue field "Iteration"'); + expect(result.error).toContain("Available fields: Priority"); + }); + + it("should return actionable error for invalid single-select option", async () => { + mockGithub.graphql + .mockResolvedValueOnce({ + repository: { + issue: { id: "ISSUE_NODE_ID" }, + }, + }) + .mockResolvedValueOnce({ + repository: { + issueFields: { + nodes: [{ id: "FIELD_PRIORITY", name: "Priority", dataType: "SINGLE_SELECT", options: [{ id: "OPTION_HIGH", name: "High" }] }], + }, + }, + }); + + const handler = await main({}); + const result = await handler({ + title: "Issue with invalid option", + body: "Body", + fields: [{ name: "Priority", value: "Low" }], + }); + + expect(result.success).toBe(false); + expect(result.error).toContain('invalid option "Low" for issue field "Priority"'); + expect(result.error).toContain("Available options: High"); + }); + + it("should enforce configured allowed-fields list", async () => { + const handler = await main({ + allowed_fields: ["Priority", "Iteration"], + }); + const result = await handler({ + title: "Issue with disallowed field", + body: "Body", + fields: [{ name: "Customer Impact", value: "High" }], + }); + + expect(result.success).toBe(false); + expect(result.error).toContain('issue field "Customer Impact" is not in the allowed-fields list: Priority, Iteration'); + }); + + it("should allow any field when allowed-fields includes wildcard", async () => { + mockGithub.graphql + .mockResolvedValueOnce({ + repository: { + issue: { id: "ISSUE_NODE_ID" }, + }, + }) + .mockResolvedValueOnce({ + repository: { + issueFields: { + nodes: [{ id: "FIELD_IMPACT", name: "Customer Impact", dataType: "TEXT" }], + }, + }, + }) + .mockResolvedValueOnce({ + setIssueFieldValue: { + issue: { id: "ISSUE_NODE_ID" }, + }, + }); + + const handler = await main({ + allowed_fields: ["*"], + }); + const result = await handler({ + title: "Issue with wildcard fields", + body: "Body", + fields: [{ name: "Customer Impact", value: "High" }], + }); + + expect(result.success).toBe(true); + }); + }); + describe("assignees handling", () => { it("should apply default assignees from config", async () => { const handler = await main({ diff --git a/actions/setup/js/safe_outputs_tools.json b/actions/setup/js/safe_outputs_tools.json index d333fbcd9a7..033c55fd48b 100644 --- a/actions/setup/js/safe_outputs_tools.json +++ b/actions/setup/js/safe_outputs_tools.json @@ -21,6 +21,25 @@ }, "description": "Labels to categorize the issue (e.g., 'bug', 'enhancement'). Labels must exist in the repository." }, + "fields": { + "type": "array", + "description": "Optional issue fields to set after creating the issue (e.g., Priority, Iteration, Start Date).", + "items": { + "type": "object", + "required": ["name", "value"], + "properties": { + "name": { + "type": "string", + "description": "Issue field name exactly as configured in the repository (e.g., \"Priority\", \"Iteration\")." + }, + "value": { + "type": ["string", "number"], + "description": "Field value. Use string for text, single-select, iteration, and date (YYYY-MM-DD) fields; use number for numeric fields." + } + }, + "additionalProperties": false + } + }, "parent": { "type": ["number", "string"], "description": "Parent issue number for creating sub-issues. This is the numeric ID from the GitHub URL (e.g., 42 in github.com/owner/repo/issues/42). Can also be a temporary_id (e.g., 'aw_abc123', 'aw_Test123') from a previously created issue in the same workflow run." diff --git a/actions/setup/js/types/safe-outputs.d.ts b/actions/setup/js/types/safe-outputs.d.ts index c9fc1b6ff7f..4e102871ddd 100644 --- a/actions/setup/js/types/safe-outputs.d.ts +++ b/actions/setup/js/types/safe-outputs.d.ts @@ -34,6 +34,13 @@ interface CreateIssueItem extends BaseSafeOutputItem { body: string; /** Optional labels to add to the issue */ labels?: string[]; + /** Optional issue fields to set after creating the issue */ + fields?: Array<{ + /** Issue field display name */ + name: string; + /** Field value (string for text/single-select/iteration/date, number for numeric fields) */ + value: string | number; + }>; /** Optional parent issue number or temporary_id to link as sub-issue */ parent?: number | string; /** Optional temporary identifier for this issue that can be referenced by other issues */ diff --git a/docs/src/content/docs/reference/safe-outputs-specification.md b/docs/src/content/docs/reference/safe-outputs-specification.md index c44ca143640..4447d784981 100644 --- a/docs/src/content/docs/reference/safe-outputs-specification.md +++ b/docs/src/content/docs/reference/safe-outputs-specification.md @@ -1989,6 +1989,17 @@ This section provides complete normative definitions for all safe output types. "title": {"type": "string", "description": "Issue title"}, "body": {"type": "string", "description": "Issue description in Markdown"}, "labels": {"type": "array", "items": {"type": "string"}}, + "fields": { + "type": "array", + "items": { + "type": "object", + "required": ["name", "value"], + "properties": { + "name": {"type": "string"}, + "value": {"type": ["string", "number"]} + } + } + }, "parent": {"type": ["number", "string"], "description": "Parent issue for sub-issues"}, "temporary_id": { "type": "string", @@ -2007,7 +2018,8 @@ This section provides complete normative definitions for all safe output types. 2. **Temporary ID Resolution**: References to `#aw_` in bodies replaced with actual numbers post-creation. 3. **Parent Linking**: When `parent` specified, tasklist entry added to parent issue. 4. **Label Validation**: Labels must exist in repository; non-existent labels cause failure. -5. **Cross-Repository**: When `target-repo` configured, created in that repository (must be in `allowed-repos`). +5. **Issue Field Validation**: Field names/values must match configured repository issue fields; invalid values return actionable errors. +6. **Cross-Repository**: When `target-repo` configured, created in that repository (must be in `allowed-repos`). **Configuration Parameters**: diff --git a/docs/src/content/docs/reference/safe-outputs.md b/docs/src/content/docs/reference/safe-outputs.md index 679b8a2b8f3..2bfd9afa720 100644 --- a/docs/src/content/docs/reference/safe-outputs.md +++ b/docs/src/content/docs/reference/safe-outputs.md @@ -98,6 +98,7 @@ safe-outputs: create-issue: title-prefix: "[ai] " # prefix for titles labels: [automation, agentic] # labels to attach + allowed-fields: [Priority, Iteration] # restrict issue fields this workflow may set assignees: [user1, copilot] # assignees (use 'copilot' for bot) max: 5 # max issues (default: 1) expires: 7 # auto-close after 7 days (or false to disable) diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json index b274e06ec34..e21733dd1e7 100644 --- a/pkg/parser/schemas/main_workflow_schema.json +++ b/pkg/parser/schemas/main_workflow_schema.json @@ -4821,6 +4821,13 @@ "type": "string" } }, + "allowed-fields": { + "type": "array", + "description": "Optional list of issue field names that can be modified by create-issue field updates. If omitted or empty, any issue field may be set. Use ['*'] to explicitly allow all.", + "items": { + "type": "string" + } + }, "assignees": { "oneOf": [ { diff --git a/pkg/workflow/compiler_safe_outputs_handlers.go b/pkg/workflow/compiler_safe_outputs_handlers.go index 8c1982522f8..a62b0a7e7bd 100644 --- a/pkg/workflow/compiler_safe_outputs_handlers.go +++ b/pkg/workflow/compiler_safe_outputs_handlers.go @@ -12,6 +12,7 @@ var handlerRegistry = map[string]handlerBuilder{ return newHandlerConfigBuilder(). AddTemplatableInt("max", c.Max). AddStringSlice("allowed_labels", c.AllowedLabels). + AddStringSlice("allowed_fields", c.AllowedFields). AddStringSlice("allowed_repos", c.AllowedRepos). AddIfPositive("expires", c.Expires). AddStringSlice("labels", c.Labels). diff --git a/pkg/workflow/create_issue.go b/pkg/workflow/create_issue.go index 374cdf1ee6c..aafa201cdbb 100644 --- a/pkg/workflow/create_issue.go +++ b/pkg/workflow/create_issue.go @@ -14,6 +14,7 @@ type CreateIssuesConfig struct { TitlePrefix string `yaml:"title-prefix,omitempty"` Labels []string `yaml:"labels,omitempty"` AllowedLabels []string `yaml:"allowed-labels,omitempty"` // Optional list of allowed labels. If omitted, any labels are allowed (including creating new ones). + AllowedFields []string `yaml:"allowed-fields,omitempty"` // Optional list of allowed issue field names. If omitted or empty, any issue fields are allowed. Use ["*"] to explicitly allow all. Assignees []string `yaml:"assignees,omitempty"` // List of users/bots to assign the issue to TargetRepoSlug string `yaml:"target-repo,omitempty"` // Target repository in format "owner/repo" for cross-repository issues AllowedRepos []string `yaml:"allowed-repos,omitempty"` // List of additional repositories that issues can be created in diff --git a/pkg/workflow/create_issue_handler_config_test.go b/pkg/workflow/create_issue_handler_config_test.go index 369717e9577..a874c623bf7 100644 --- a/pkg/workflow/create_issue_handler_config_test.go +++ b/pkg/workflow/create_issue_handler_config_test.go @@ -27,6 +27,7 @@ safe-outputs: create-issue: max: 1 labels: [test-label] + allowed-fields: [Priority, Iteration] title-prefix: "[Test] " assignees: [user1, user2] --- @@ -113,6 +114,15 @@ Create an issue with title "Test" and body "Test body". t.Errorf("Expected title_prefix='[Test] ' in create_issue config, got: %v", createIssueConfig["title_prefix"]) } + // Verify allowed_fields are present + allowedFields, ok := createIssueConfig["allowed_fields"].([]any) + if !ok { + t.Fatal("Expected allowed_fields array in create_issue config") + } + if len(allowedFields) != 2 || allowedFields[0] != "Priority" || allowedFields[1] != "Iteration" { + t.Errorf("Expected allowed_fields=[Priority, Iteration] in create_issue config, got: %v", allowedFields) + } + // Verify assignees are present (this is the main test) assignees, ok := createIssueConfig["assignees"].([]any) if !ok { diff --git a/pkg/workflow/js/safe_outputs_tools.json b/pkg/workflow/js/safe_outputs_tools.json index 75c123855cb..9836f6f5be9 100644 --- a/pkg/workflow/js/safe_outputs_tools.json +++ b/pkg/workflow/js/safe_outputs_tools.json @@ -24,6 +24,31 @@ }, "description": "Labels to categorize the issue (e.g., 'bug', 'enhancement'). Labels must exist in the repository." }, + "fields": { + "type": "array", + "description": "Optional issue fields to set after creating the issue (e.g., Priority, Iteration, Start Date).", + "items": { + "type": "object", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "description": "Issue field name exactly as configured in the repository (e.g., \"Priority\", \"Iteration\")." + }, + "value": { + "type": [ + "string", + "number" + ], + "description": "Field value. Use string for text, single-select, iteration, and date (YYYY-MM-DD) fields; use number for numeric fields." + } + }, + "additionalProperties": false + } + }, "parent": { "type": [ "number", diff --git a/pkg/workflow/safe_outputs_validation_config.go b/pkg/workflow/safe_outputs_validation_config.go index 4849ea4e6b0..8dad93d78a7 100644 --- a/pkg/workflow/safe_outputs_validation_config.go +++ b/pkg/workflow/safe_outputs_validation_config.go @@ -50,6 +50,7 @@ var ValidationConfig = map[string]TypeValidationConfig{ "title": {Required: true, Type: "string", Sanitize: true, MaxLength: 128}, "body": {Required: true, Type: "string", Sanitize: true, MaxLength: MaxBodyLength}, "labels": {Type: "array", ItemType: "string", ItemSanitize: true, ItemMaxLength: 128}, + "fields": {Type: "array"}, "parent": {IssueOrPRNumber: true}, "temporary_id": {Type: "string"}, "repo": {Type: "string", MaxLength: 256}, // Optional: target repository in format "owner/repo" diff --git a/pkg/workflow/tool_description_enhancer.go b/pkg/workflow/tool_description_enhancer.go index 380706423ad..dfae02423ca 100644 --- a/pkg/workflow/tool_description_enhancer.go +++ b/pkg/workflow/tool_description_enhancer.go @@ -2,6 +2,7 @@ package workflow import ( "fmt" + "slices" "strings" "github.com/github/gh-aw/pkg/logger" @@ -9,15 +10,15 @@ import ( var toolDescriptionEnhancerLog = logger.New("workflow:tool_description_enhancer") -// formatLabelList formats a slice of labels with proper quoting for readability +// formatStringList formats a slice of strings with proper quoting for readability // Example: ["bug", "feature request", "docs"] -> ["bug" "feature request" "docs"] -func formatLabelList(labels []string) string { - if len(labels) == 0 { +func formatStringList(items []string) string { + if len(items) == 0 { return "[]" } - quoted := make([]string, len(labels)) - for i, label := range labels { - quoted[i] = fmt.Sprintf("%q", label) + quoted := make([]string, len(items)) + for i, item := range items { + quoted[i] = fmt.Sprintf("%q", item) } return "[" + strings.Join(quoted, " ") + "]" } @@ -44,13 +45,20 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO constraints = append(constraints, fmt.Sprintf("Title will be prefixed with %q.", config.TitlePrefix)) } if len(config.Labels) > 0 { - constraints = append(constraints, fmt.Sprintf("Labels %s will be automatically added.", formatLabelList(config.Labels))) + constraints = append(constraints, fmt.Sprintf("Labels %s will be automatically added.", formatStringList(config.Labels))) } if len(config.AllowedLabels) > 0 { - constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatLabelList(config.AllowedLabels))) + constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatStringList(config.AllowedLabels))) + } + if len(config.AllowedFields) > 0 { + if slices.Contains(config.AllowedFields, "*") { + constraints = append(constraints, "Any issue field is allowed.") + } else { + constraints = append(constraints, fmt.Sprintf("Only these issue fields are allowed: %s.", formatStringList(config.AllowedFields))) + } } if len(config.Assignees) > 0 { - constraints = append(constraints, fmt.Sprintf("Assignees %s will be automatically assigned.", formatLabelList(config.Assignees))) + constraints = append(constraints, fmt.Sprintf("Assignees %s will be automatically assigned.", formatStringList(config.Assignees))) } if config.TargetRepoSlug != "" { constraints = append(constraints, fmt.Sprintf("Issues will be created in repository %q.", config.TargetRepoSlug)) @@ -85,7 +93,7 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO constraints = append(constraints, fmt.Sprintf("Discussions will be created in category %q.", config.Category)) } if len(config.AllowedLabels) > 0 { - constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatLabelList(config.AllowedLabels))) + constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatStringList(config.AllowedLabels))) } if config.TargetRepoSlug != "" { constraints = append(constraints, fmt.Sprintf("Discussions will be created in repository %q.", config.TargetRepoSlug)) @@ -121,7 +129,7 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO } if config.Labels != nil { if len(config.AllowedLabels) > 0 { - constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatLabelList(config.AllowedLabels))) + constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatStringList(config.AllowedLabels))) } else { constraints = append(constraints, "Label updates are allowed.") } @@ -181,16 +189,16 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO constraints = append(constraints, fmt.Sprintf("Title will be prefixed with %q.", config.TitlePrefix)) } if len(config.Labels) > 0 { - constraints = append(constraints, fmt.Sprintf("Labels %s will be automatically added.", formatLabelList(config.Labels))) + constraints = append(constraints, fmt.Sprintf("Labels %s will be automatically added.", formatStringList(config.Labels))) } if len(config.AllowedLabels) > 0 { - constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatLabelList(config.AllowedLabels))) + constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatStringList(config.AllowedLabels))) } if config.Draft != nil && *config.Draft == "true" { constraints = append(constraints, "PRs will be created as drafts.") } if len(config.Reviewers) > 0 { - constraints = append(constraints, fmt.Sprintf("Reviewers %s will be assigned.", formatLabelList(config.Reviewers))) + constraints = append(constraints, fmt.Sprintf("Reviewers %s will be assigned.", formatStringList(config.Reviewers))) } } @@ -238,7 +246,7 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO constraints = append(constraints, fmt.Sprintf("Maximum %d label(s) can be added.", templatableIntValue(config.Max))) } if len(config.Allowed) > 0 { - constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatLabelList(config.Allowed))) + constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatStringList(config.Allowed))) } if config.Target != "" { constraints = append(constraints, fmt.Sprintf("Target: %s.", config.Target)) diff --git a/pkg/workflow/tool_description_enhancer_test.go b/pkg/workflow/tool_description_enhancer_test.go new file mode 100644 index 00000000000..3e9f2cb23ef --- /dev/null +++ b/pkg/workflow/tool_description_enhancer_test.go @@ -0,0 +1,35 @@ +//go:build !integration + +package workflow + +import ( + "strings" + "testing" +) + +func TestEnhanceToolDescriptionCreateIssueAllowedFieldsWildcard(t *testing.T) { + description := enhanceToolDescription("create_issue", "Create an issue.", &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + AllowedFields: []string{"*"}, + }, + }) + + if !strings.Contains(description, "Any issue field is allowed.") { + t.Fatalf("expected wildcard message in description, got: %s", description) + } + if strings.Contains(description, "Only these issue fields are allowed") { + t.Fatalf("did not expect restrictive fields message for wildcard, got: %s", description) + } +} + +func TestEnhanceToolDescriptionCreateIssueAllowedFieldsList(t *testing.T) { + description := enhanceToolDescription("create_issue", "Create an issue.", &SafeOutputsConfig{ + CreateIssues: &CreateIssuesConfig{ + AllowedFields: []string{"Priority", "Iteration"}, + }, + }) + + if !strings.Contains(description, "Only these issue fields are allowed: [\"Priority\" \"Iteration\"].") { + t.Fatalf("expected restrictive fields message in description, got: %s", description) + } +} diff --git a/schemas/agent-output.json b/schemas/agent-output.json index 1602dd7fb9f..4f13971d375 100644 --- a/schemas/agent-output.json +++ b/schemas/agent-output.json @@ -82,6 +82,25 @@ "items": { "type": "string" } + }, + "fields": { + "type": "array", + "description": "Optional issue fields to set after creating the issue", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Issue field name" + }, + "value": { + "oneOf": [{ "type": "string" }, { "type": "number" }], + "description": "Issue field value" + } + }, + "required": ["name", "value"], + "additionalProperties": false + } } }, "required": ["type", "title", "body"], From ed5b017b225c21b9c5c82afc96a641fc5d21b217 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 03:15:13 -0700 Subject: [PATCH 06/16] chore: bump default Claude/Copilot/Codex/Playwright MCP versions and refresh generated workflows (#30957) --- .github/workflows/ab-testing-advisor.lock.yml | 24 ++++++------- .github/workflows/ace-editor.lock.yml | 18 +++++----- .../agent-performance-analyzer.lock.yml | 22 ++++++------ .../workflows/agent-persona-explorer.lock.yml | 22 ++++++------ .github/workflows/ai-moderator.lock.yml | 18 +++++----- .../workflows/api-consumption-report.lock.yml | 22 ++++++------ .github/workflows/approach-validator.lock.yml | 20 +++++------ .github/workflows/archie.lock.yml | 22 ++++++------ .../workflows/architecture-guardian.lock.yml | 22 ++++++------ .github/workflows/artifacts-summary.lock.yml | 20 +++++------ .github/workflows/audit-workflows.lock.yml | 24 ++++++------- .github/workflows/auto-triage-issues.lock.yml | 22 ++++++------ .../aw-failure-investigator.lock.yml | 18 +++++----- .github/workflows/blog-auditor.lock.yml | 18 +++++----- .github/workflows/bot-detection.lock.yml | 16 ++++----- .github/workflows/brave.lock.yml | 22 ++++++------ .../breaking-change-checker.lock.yml | 22 ++++++------ .github/workflows/changeset.lock.yml | 16 ++++----- .github/workflows/ci-coach.lock.yml | 22 ++++++------ .github/workflows/ci-doctor.lock.yml | 22 ++++++------ .../claude-code-user-docs-review.lock.yml | 20 +++++------ .../cli-consistency-checker.lock.yml | 20 +++++------ .../workflows/cli-version-checker.lock.yml | 20 +++++------ .github/workflows/cloclo.lock.yml | 22 ++++++------ .../workflows/code-scanning-fixer.lock.yml | 26 +++++++------- .github/workflows/code-simplifier.lock.yml | 22 ++++++------ .../codex-github-remote-mcp-test.lock.yml | 14 ++++---- .../commit-changes-analyzer.lock.yml | 18 +++++----- .../constraint-solving-potd.lock.yml | 22 ++++++------ .github/workflows/contribution-check.lock.yml | 20 +++++------ .../workflows/copilot-agent-analysis.lock.yml | 22 ++++++------ .../copilot-cli-deep-research.lock.yml | 22 ++++++------ .github/workflows/copilot-opt.lock.yml | 22 ++++++------ .../copilot-pr-merged-report.lock.yml | 22 ++++++------ .../copilot-pr-nlp-analysis.lock.yml | 28 +++++++-------- .../copilot-pr-prompt-analysis.lock.yml | 24 ++++++------- .../copilot-session-insights.lock.yml | 24 ++++++------- .../workflows/copilot-token-audit.lock.yml | 26 +++++++------- .../copilot-token-optimizer.lock.yml | 18 +++++----- .github/workflows/craft.lock.yml | 22 ++++++------ .../daily-architecture-diagram.lock.yml | 22 ++++++------ .../daily-assign-issue-to-user.lock.yml | 20 +++++------ ...strostylelite-markdown-spellcheck.lock.yml | 20 +++++------ ...daily-aw-cross-repo-compile-check.lock.yml | 20 +++++------ .../daily-cache-strategy-analyzer.lock.yml | 32 ++++++++--------- .../daily-caveman-optimizer.lock.yml | 20 +++++------ .github/workflows/daily-choice-test.lock.yml | 18 +++++----- .../workflows/daily-cli-performance.lock.yml | 24 ++++++------- .../workflows/daily-cli-tools-tester.lock.yml | 20 +++++------ .github/workflows/daily-code-metrics.lock.yml | 24 ++++++------- .../daily-community-attribution.lock.yml | 24 ++++++------- .../workflows/daily-compiler-quality.lock.yml | 22 ++++++------ ...ly-compiler-threat-spec-optimizer.lock.yml | 20 +++++------ .github/workflows/daily-doc-healer.lock.yml | 20 +++++------ .github/workflows/daily-doc-updater.lock.yml | 20 +++++------ .../daily-experiment-report.lock.yml | 26 +++++++------- .github/workflows/daily-fact.lock.yml | 32 ++++++++--------- .github/workflows/daily-file-diet.lock.yml | 22 ++++++------ .../workflows/daily-firewall-report.lock.yml | 26 +++++++------- .../workflows/daily-function-namer.lock.yml | 20 +++++------ .../workflows/daily-geo-optimizer.lock.yml | 20 +++++------ ...fana-otel-instrumentation-advisor.lock.yml | 18 +++++----- .github/workflows/daily-hippo-learn.lock.yml | 22 ++++++------ .../workflows/daily-issues-report.lock.yml | 28 +++++++-------- .../daily-malicious-code-scan.lock.yml | 16 ++++----- .../daily-mcp-concurrency-analysis.lock.yml | 22 ++++++------ .../workflows/daily-model-inventory.lock.yml | 20 +++++------ .../daily-multi-device-docs-tester.lock.yml | 18 +++++----- .github/workflows/daily-news.lock.yml | 28 +++++++-------- .../daily-observability-report.lock.yml | 30 ++++++++-------- ...aily-otel-instrumentation-advisor.lock.yml | 18 +++++----- .../daily-performance-summary.lock.yml | 26 +++++++------- .github/workflows/daily-regulatory.lock.yml | 20 +++++------ .../daily-rendering-scripts-verifier.lock.yml | 22 ++++++------ .../workflows/daily-repo-chronicle.lock.yml | 26 +++++++------- .../daily-safe-output-integrator.lock.yml | 20 +++++------ .../daily-safe-output-optimizer.lock.yml | 22 ++++++------ .../daily-safe-outputs-conformance.lock.yml | 18 +++++----- .../workflows/daily-secrets-analysis.lock.yml | 20 +++++------ .../daily-security-observability.lock.yml | 26 +++++++------- .../daily-security-red-team.lock.yml | 20 +++++------ .github/workflows/daily-semgrep-scan.lock.yml | 20 +++++------ .../workflows/daily-sentrux-report.lock.yml | 22 ++++++------ .../workflows/daily-skill-optimizer.lock.yml | 20 +++++------ .../daily-spdd-spec-planner.lock.yml | 22 ++++++------ .../daily-subagent-optimizer.lock.yml | 20 +++++------ .../daily-syntax-error-quality.lock.yml | 20 +++++------ .../daily-team-evolution-insights.lock.yml | 18 +++++----- .github/workflows/daily-team-status.lock.yml | 22 ++++++------ .../daily-testify-uber-super-expert.lock.yml | 24 ++++++------- .../daily-token-consumption-report.lock.yml | 18 +++++----- .../workflows/daily-workflow-updater.lock.yml | 20 +++++------ .github/workflows/dead-code-remover.lock.yml | 24 ++++++------- .github/workflows/deep-report.lock.yml | 24 ++++++------- .github/workflows/delight.lock.yml | 22 ++++++------ .github/workflows/dependabot-burner.lock.yml | 20 +++++------ .../workflows/dependabot-go-checker.lock.yml | 20 +++++------ .github/workflows/dependabot-repair.lock.yml | 22 ++++++------ .../deployment-incident-monitor.lock.yml | 22 ++++++------ .../workflows/design-decision-gate.lock.yml | 20 +++++------ .github/workflows/dev-hawk.lock.yml | 22 ++++++------ .../developer-docs-consolidator.lock.yml | 22 ++++++------ .github/workflows/dictation-prompt.lock.yml | 20 +++++------ .../workflows/discussion-task-miner.lock.yml | 22 ++++++------ .github/workflows/docs-noob-tester.lock.yml | 24 ++++++------- .github/workflows/draft-pr-cleanup.lock.yml | 20 +++++------ .../duplicate-code-detector.lock.yml | 30 ++++++++-------- .../example-permissions-warning.lock.yml | 16 ++++----- .../example-workflow-analyzer.lock.yml | 18 +++++----- .github/workflows/firewall-escape.lock.yml | 26 +++++++------- .github/workflows/firewall.lock.yml | 16 ++++----- .../workflows/functional-pragmatist.lock.yml | 20 +++++------ .../github-mcp-structural-analysis.lock.yml | 22 ++++++------ .../github-mcp-tools-report.lock.yml | 20 +++++------ .../github-remote-mcp-auth-test.lock.yml | 20 +++++------ .../workflows/glossary-maintainer.lock.yml | 24 ++++++------- .github/workflows/go-fan.lock.yml | 20 +++++------ .github/workflows/go-logger.lock.yml | 20 +++++------ .../workflows/go-pattern-detector.lock.yml | 18 +++++----- .github/workflows/gpclean.lock.yml | 22 ++++++------ .github/workflows/grumpy-reviewer.lock.yml | 34 +++++++++---------- .github/workflows/hippo-embed.lock.yml | 16 ++++----- .github/workflows/hourly-ci-cleaner.lock.yml | 18 +++++----- .../workflows/instructions-janitor.lock.yml | 20 +++++------ .github/workflows/issue-arborist.lock.yml | 32 ++++++++--------- .github/workflows/issue-monster.lock.yml | 22 ++++++------ .github/workflows/issue-triage-agent.lock.yml | 20 +++++------ .github/workflows/jsweep.lock.yml | 22 ++++++------ .../workflows/layout-spec-maintainer.lock.yml | 20 +++++------ .github/workflows/lockfile-stats.lock.yml | 20 +++++------ .../mattpocock-skills-reviewer.lock.yml | 24 ++++++------- .github/workflows/mcp-inspector.lock.yml | 22 ++++++------ .github/workflows/mergefest.lock.yml | 22 ++++++------ .github/workflows/metrics-collector.lock.yml | 22 ++++++------ .../workflows/notion-issue-summary.lock.yml | 20 +++++------ .github/workflows/org-health-report.lock.yml | 26 +++++++------- .github/workflows/pdf-summary.lock.yml | 24 ++++++------- .github/workflows/plan.lock.yml | 22 ++++++------ .github/workflows/poem-bot.lock.yml | 24 ++++++------- .../pr-code-quality-reviewer.lock.yml | 24 ++++++------- .../workflows/pr-nitpick-reviewer.lock.yml | 24 ++++++------- .github/workflows/pr-triage-agent.lock.yml | 24 ++++++------- .../prompt-clustering-analysis.lock.yml | 22 ++++++------ .github/workflows/python-data-charts.lock.yml | 26 +++++++------- .github/workflows/q.lock.yml | 22 ++++++------ .../workflows/refactoring-cadence.lock.yml | 24 ++++++------- .github/workflows/refiner.lock.yml | 24 ++++++------- .github/workflows/release.lock.yml | 18 +++++----- .../workflows/repo-audit-analyzer.lock.yml | 22 ++++++------ .github/workflows/repo-tree-map.lock.yml | 20 +++++------ .../repository-quality-improver.lock.yml | 22 ++++++------ .github/workflows/research.lock.yml | 20 +++++------ .github/workflows/safe-output-health.lock.yml | 20 +++++------ .../schema-consistency-checker.lock.yml | 20 +++++------ .../schema-feature-coverage.lock.yml | 30 ++++++++-------- .github/workflows/scout.lock.yml | 22 ++++++------ .../workflows/security-compliance.lock.yml | 22 ++++++------ .github/workflows/security-review.lock.yml | 24 ++++++------- .../semantic-function-refactor.lock.yml | 18 +++++----- .github/workflows/sergo.lock.yml | 20 +++++------ .../workflows/slide-deck-maintainer.lock.yml | 24 ++++++------- .../workflows/smoke-agent-all-merged.lock.yml | 20 +++++------ .../workflows/smoke-agent-all-none.lock.yml | 20 +++++------ .../smoke-agent-public-approved.lock.yml | 20 +++++------ .../smoke-agent-public-none.lock.yml | 20 +++++------ .../smoke-agent-scoped-approved.lock.yml | 20 +++++------ .../workflows/smoke-call-workflow.lock.yml | 32 ++++++++--------- .github/workflows/smoke-ci.lock.yml | 16 ++++----- .github/workflows/smoke-claude.lock.yml | 22 ++++++------ .github/workflows/smoke-codex.lock.yml | 34 +++++++++---------- .github/workflows/smoke-copilot-arm.lock.yml | 24 ++++++------- .github/workflows/smoke-copilot.lock.yml | 26 +++++++------- .../smoke-create-cross-repo-pr.lock.yml | 22 ++++++------ .github/workflows/smoke-multi-pr.lock.yml | 22 ++++++------ .github/workflows/smoke-project.lock.yml | 22 ++++++------ .../workflows/smoke-service-ports.lock.yml | 22 ++++++------ .github/workflows/smoke-temporary-id.lock.yml | 22 ++++++------ .github/workflows/smoke-test-tools.lock.yml | 22 ++++++------ .../smoke-update-cross-repo-pr.lock.yml | 24 ++++++------- .../smoke-workflow-call-with-inputs.lock.yml | 22 ++++++------ .../workflows/smoke-workflow-call.lock.yml | 22 ++++++------ .github/workflows/spec-enforcer.lock.yml | 20 +++++------ .github/workflows/spec-extractor.lock.yml | 22 ++++++------ .github/workflows/spec-librarian.lock.yml | 22 ++++++------ .github/workflows/stale-pr-cleanup.lock.yml | 20 +++++------ .../workflows/stale-repo-identifier.lock.yml | 26 +++++++------- .../workflows/static-analysis-report.lock.yml | 20 +++++------ .../workflows/step-name-alignment.lock.yml | 20 +++++------ .github/workflows/sub-issue-closer.lock.yml | 20 +++++------ .github/workflows/super-linter.lock.yml | 22 ++++++------ .../workflows/technical-doc-writer.lock.yml | 24 ++++++------- .github/workflows/terminal-stylist.lock.yml | 20 +++++------ .../test-create-pr-error-handling.lock.yml | 20 +++++------ .github/workflows/test-dispatcher.lock.yml | 20 +++++------ .../test-project-url-default.lock.yml | 20 +++++------ .../workflows/test-quality-sentinel.lock.yml | 22 ++++++------ .github/workflows/test-workflow.lock.yml | 16 ++++----- .github/workflows/tidy.lock.yml | 22 ++++++------ .github/workflows/typist.lock.yml | 18 +++++----- .../workflows/ubuntu-image-analyzer.lock.yml | 22 ++++++------ .github/workflows/unbloat-docs.lock.yml | 24 ++++++------- .github/workflows/update-astro.lock.yml | 22 ++++++------ .github/workflows/video-analyzer.lock.yml | 20 +++++------ .../visual-regression-checker.lock.yml | 22 ++++++------ .../weekly-blog-post-writer.lock.yml | 22 ++++++------ .../weekly-editors-health-check.lock.yml | 24 ++++++------- .../workflows/weekly-issue-summary.lock.yml | 26 +++++++------- .../weekly-safe-outputs-spec-review.lock.yml | 20 +++++------ .github/workflows/workflow-generator.lock.yml | 24 ++++++------- .../workflow-health-manager.lock.yml | 22 ++++++------ .../workflows/workflow-normalizer.lock.yml | 20 +++++------ .../workflow-skill-extractor.lock.yml | 20 +++++------ pkg/constants/version_constants.go | 8 ++--- .../basic-copilot.golden | 12 +++---- .../playwright-cli-mode.golden | 12 +++---- .../smoke-copilot.golden | 12 +++---- .../with-imports.golden | 12 +++---- 217 files changed, 2337 insertions(+), 2337 deletions(-) diff --git a/.github/workflows/ab-testing-advisor.lock.yml b/.github/workflows/ab-testing-advisor.lock.yml index 72d1ac89b33..549bce70b44 100644 --- a/.github/workflows/ab-testing-advisor.lock.yml +++ b/.github/workflows/ab-testing-advisor.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -361,7 +361,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -423,7 +423,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1003,7 +1003,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1150,7 +1150,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1235,7 +1235,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1342,7 +1342,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1387,7 +1387,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "ab-testing-advisor" GH_AW_WORKFLOW_ID: "ab-testing-advisor" GH_AW_WORKFLOW_NAME: "Daily A/B Testing Advisor" @@ -1418,7 +1418,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1499,7 +1499,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml index c96f55e8f43..982df133fc9 100644 --- a/.github/workflows/ace-editor.lock.yml +++ b/.github/workflows/ace-editor.lock.yml @@ -101,15 +101,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "ACE Editor Session" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -392,7 +392,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -425,7 +425,7 @@ jobs: git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git" echo "Git configured with standard GitHub Actions identity" - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -882,7 +882,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1010,7 +1010,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1050,7 +1050,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "ace-editor" GH_AW_WORKFLOW_NAME: "ACE Editor Session" outputs: @@ -1080,7 +1080,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index e282c048d33..acdb3ac5430 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -372,7 +372,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -459,7 +459,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1111,7 +1111,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1258,7 +1258,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1343,7 +1343,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1461,7 +1461,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1539,7 +1539,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "agent-performance-analyzer" GH_AW_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" outputs: @@ -1571,7 +1571,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index 44fdc4ddfaa..1578e2b7542 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -367,7 +367,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -459,7 +459,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1055,7 +1055,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1199,7 +1199,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1284,7 +1284,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1384,7 +1384,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "agent-persona-explorer" GH_AW_WORKFLOW_NAME: "Agent Persona Explorer" outputs: @@ -1412,7 +1412,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1493,7 +1493,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml index 797ec2d3176..c88a1cc4c5d 100644 --- a/.github/workflows/ai-moderator.lock.yml +++ b/.github/workflows/ai-moderator.lock.yml @@ -122,15 +122,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "AI Moderator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -402,7 +402,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -453,7 +453,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Parse integrity filter lists @@ -1045,7 +1045,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1162,7 +1162,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Check user rate limit id: check_rate_limit uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1249,7 +1249,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1327,7 +1327,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Unlock issue after agentic workflow id: unlock-issue if: (github.event_name == 'issues' || github.event_name == 'issue_comment') && needs.activation.outputs.issue_locked == 'true' diff --git a/.github/workflows/api-consumption-report.lock.yml b/.github/workflows/api-consumption-report.lock.yml index 0ac433e2951..fb37cb12d14 100644 --- a/.github/workflows/api-consumption-report.lock.yml +++ b/.github/workflows/api-consumption-report.lock.yml @@ -123,7 +123,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -132,8 +132,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -392,7 +392,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -512,7 +512,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1205,7 +1205,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1350,7 +1350,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1437,7 +1437,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1569,7 +1569,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1652,7 +1652,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1706,7 +1706,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub API Consumption Report Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/api-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/approach-validator.lock.yml b/.github/workflows/approach-validator.lock.yml index ff551c1080d..91cd19d0c16 100644 --- a/.github/workflows/approach-validator.lock.yml +++ b/.github/workflows/approach-validator.lock.yml @@ -127,15 +127,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Approach Validator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -406,7 +406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -460,7 +460,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1082,7 +1082,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1220,7 +1220,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1307,7 +1307,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1421,7 +1421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1490,7 +1490,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 1b5e22dba00..83e8c863dd7 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -117,15 +117,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Archie" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -452,7 +452,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -499,7 +499,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1056,7 +1056,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1219,7 +1219,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1304,7 +1304,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1412,7 +1412,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1457,7 +1457,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📊 *Diagram rendered by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"footerWorkflowRecompile\":\"\\u003e 🔧 *Workflow sync report by [{workflow_name}]({run_url}) for {repository}*\",\"footerWorkflowRecompileComment\":\"\\u003e 🔄 *Update from [{workflow_name}]({run_url}) for {repository}*\",\"runStarted\":\"📐 [{workflow_name}]({run_url}) is analyzing the architecture for this {event_type}...\",\"runSuccess\":\"🎨 [{workflow_name}]({run_url}) has completed the architecture visualization. ✅\",\"runFailure\":\"📐 [{workflow_name}]({run_url}) encountered an issue and could not complete the architecture diagram. Check the [run logs]({run_url}) for details.\"}" GH_AW_WORKFLOW_ID: "archie" GH_AW_WORKFLOW_NAME: "Archie" @@ -1488,7 +1488,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/architecture-guardian.lock.yml b/.github/workflows/architecture-guardian.lock.yml index 051f59350c1..6b41ed001fe 100644 --- a/.github/workflows/architecture-guardian.lock.yml +++ b/.github/workflows/architecture-guardian.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Architecture Guardian" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -359,7 +359,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -416,7 +416,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -975,7 +975,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1124,7 +1124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1209,7 +1209,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1316,7 +1316,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1361,7 +1361,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🏛️ *Architecture report by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"footerWorkflowRecompile\":\"\\u003e 🛠️ *Workflow maintenance by [{workflow_name}]({run_url}) for {repository}*\",\"runStarted\":\"🏛️ Architecture Guardian online! [{workflow_name}]({run_url}) is scanning code structure on this {event_type}...\",\"runSuccess\":\"✅ Architecture scan complete! [{workflow_name}]({run_url}) has reviewed code structure. Report delivered! 📋\",\"runFailure\":\"🏛️ Architecture scan failed! [{workflow_name}]({run_url}) {status}. Structure status unknown...\"}" GH_AW_TRACKER_ID: "architecture-guardian" GH_AW_WORKFLOW_ID: "architecture-guardian" @@ -1395,7 +1395,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 5469f4f60b9..80ca399d030 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Artifacts Summary" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -350,7 +350,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -397,7 +397,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -927,7 +927,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1070,7 +1070,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1155,7 +1155,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1256,7 +1256,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "artifacts-summary" GH_AW_WORKFLOW_NAME: "Artifacts Summary" outputs: @@ -1284,7 +1284,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index c1d99fc9f8c..648096a5f0b 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -402,7 +402,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -532,7 +532,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1241,7 +1241,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1390,7 +1390,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1477,7 +1477,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1598,7 +1598,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1703,7 +1703,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1786,7 +1786,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1840,7 +1840,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agentic Workflow Audit Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/audit-workflows.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml index 8e6881ade4b..9e208e4ece5 100644 --- a/.github/workflows/auto-triage-issues.lock.yml +++ b/.github/workflows/auto-triage-issues.lock.yml @@ -111,15 +111,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: "gpt-5-mini" - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -369,7 +369,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -438,7 +438,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1011,7 +1011,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1154,7 +1154,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1239,7 +1239,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1347,7 +1347,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1396,7 +1396,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: "gpt-5-mini" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "auto-triage-issues" GH_AW_WORKFLOW_NAME: "Auto-Triage Issues" outputs: @@ -1424,7 +1424,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/aw-failure-investigator.lock.yml b/.github/workflows/aw-failure-investigator.lock.yml index 9c704d11379..ea0b5acb4f7 100644 --- a/.github/workflows/aw-failure-investigator.lock.yml +++ b/.github/workflows/aw-failure-investigator.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -359,7 +359,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -443,7 +443,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1149,7 +1149,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1291,7 +1291,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1378,7 +1378,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1511,7 +1511,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index 334f8686161..f7319186c93 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -114,7 +114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Blog Auditor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/blog-auditor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -123,8 +123,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Blog Auditor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -371,7 +371,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Blog Auditor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/blog-auditor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -427,7 +427,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Install Playwright CLI run: npm install -g @playwright/cli@0.1.11 - name: Install Playwright CLI skills @@ -1073,7 +1073,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Blog Auditor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/blog-auditor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1217,7 +1217,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Blog Auditor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/blog-auditor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1304,7 +1304,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1436,7 +1436,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Blog Auditor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/blog-auditor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index a3e1350b779..9b94d123411 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -99,15 +99,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Bot Detection" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/bot-detection.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Bot Detection" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -370,7 +370,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Bot Detection" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/bot-detection.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -417,7 +417,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1012,7 +1012,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Bot Detection" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/bot-detection.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1928,7 +1928,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "bot-detection" GH_AW_WORKFLOW_NAME: "Bot Detection" outputs: @@ -1958,7 +1958,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Bot Detection" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/bot-detection.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 8a5c49babd6..b885266092a 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -408,7 +408,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -455,7 +455,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1008,7 +1008,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1171,7 +1171,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1256,7 +1256,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1364,7 +1364,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1409,7 +1409,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🦁 *Search results brought to you by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"footerWorkflowRecompile\":\"\\u003e 🔄 *Maintenance report by [{workflow_name}]({run_url}) for {repository}*\",\"runStarted\":\"🔍 [{workflow_name}]({run_url}) is searching the web on this {event_type}.\",\"runSuccess\":\"✅ Research complete. [{workflow_name}]({run_url}) has returned with results.\",\"runFailure\":\"❌ Search failed. [{workflow_name}]({run_url}) {status}. Unable to retrieve web sources.\"}" GH_AW_WORKFLOW_ID: "brave" GH_AW_WORKFLOW_NAME: "Brave Web Search Agent" @@ -1440,7 +1440,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index f2cdba65bba..bb644c1ff48 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -359,7 +359,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -406,7 +406,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -963,7 +963,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1112,7 +1112,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1197,7 +1197,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1304,7 +1304,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1349,7 +1349,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚠️ *Compatibility report by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"footerWorkflowRecompile\":\"\\u003e 🛠️ *Workflow maintenance by [{workflow_name}]({run_url}) for {repository}*\",\"runStarted\":\"🔬 Breaking Change Checker online! [{workflow_name}]({run_url}) is analyzing API compatibility on this {event_type}...\",\"runSuccess\":\"✅ Analysis complete! [{workflow_name}]({run_url}) has reviewed all changes. Compatibility verdict delivered! 📋\",\"runFailure\":\"🔬 Analysis interrupted! [{workflow_name}]({run_url}) {status}. Compatibility status unknown...\"}" GH_AW_TRACKER_ID: "breaking-change-checker" GH_AW_WORKFLOW_ID: "breaking-change-checker" @@ -1383,7 +1383,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 8f80f8cb47c..94c8ee1f60f 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -121,15 +121,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: "gpt-5.4-mini" - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Changeset Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -406,7 +406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -461,7 +461,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -1060,7 +1060,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1181,7 +1181,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1239,7 +1239,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 8c56e568f0b..23714179d28 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -477,7 +477,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1034,7 +1034,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1183,7 +1183,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1268,7 +1268,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1369,7 +1369,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "ci-coach-daily" GH_AW_WORKFLOW_ID: "ci-coach" GH_AW_WORKFLOW_NAME: "CI Optimization Coach" @@ -1400,7 +1400,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1542,7 +1542,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index c0db3136a10..ccb211680f7 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -116,15 +116,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -442,7 +442,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -527,7 +527,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1209,7 +1209,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1379,7 +1379,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1466,7 +1466,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1577,7 +1577,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1645,7 +1645,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1726,7 +1726,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index e184aa20c45..2cf10633963 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -117,7 +117,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/claude-code-user-docs-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -126,8 +126,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -379,7 +379,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/claude-code-user-docs-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -450,7 +450,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1061,7 +1061,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/claude-code-user-docs-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1207,7 +1207,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/claude-code-user-docs-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1294,7 +1294,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1426,7 +1426,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/claude-code-user-docs-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1509,7 +1509,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Claude Code User Documentation Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/claude-code-user-docs-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 7f5ce058d75..6493704397f 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -96,15 +96,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -345,7 +345,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -392,7 +392,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -934,7 +934,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1075,7 +1075,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1160,7 +1160,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1260,7 +1260,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "cli-consistency-checker" GH_AW_WORKFLOW_NAME: "CLI Consistency Checker" outputs: @@ -1290,7 +1290,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index cba7dbe2275..83b2b17e24b 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "CLI Version Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -362,7 +362,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -434,7 +434,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1040,7 +1040,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1178,7 +1178,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1265,7 +1265,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1397,7 +1397,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1478,7 +1478,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index cd7aac5743a..52e428596e1 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -143,15 +143,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "/cloclo" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -519,7 +519,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -621,7 +621,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Install Playwright CLI run: npm install -g @playwright/cli@0.1.11 - name: Install Playwright CLI skills @@ -1361,7 +1361,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1523,7 +1523,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1610,7 +1610,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1721,7 +1721,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1798,7 +1798,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1940,7 +1940,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index c34d5fda089..c5cc5ab38f6 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -372,7 +372,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -444,7 +444,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1037,7 +1037,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1185,7 +1185,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1270,7 +1270,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1377,7 +1377,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1440,7 +1440,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1517,7 +1517,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "code-scanning-fixer" GH_AW_WORKFLOW_NAME: "Code Scanning Fixer" outputs: @@ -1547,7 +1547,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1689,7 +1689,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index d336fb3dab5..96593e14ce2 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -109,15 +109,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Code Simplifier" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -368,7 +368,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -415,7 +415,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -966,7 +966,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1114,7 +1114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1199,7 +1199,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1305,7 +1305,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1351,7 +1351,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "code-simplifier" GH_AW_WORKFLOW_ID: "code-simplifier" GH_AW_WORKFLOW_NAME: "Code Simplifier" @@ -1382,7 +1382,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index d57672f9239..7d587df62e9 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -95,15 +95,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/codex-github-remote-mcp-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -342,7 +342,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/codex-github-remote-mcp-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -394,7 +394,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -888,7 +888,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/codex-github-remote-mcp-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -977,7 +977,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/codex-github-remote-mcp-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index b0f4ad74521..0e78ca27c1e 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -104,15 +104,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -355,7 +355,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -409,7 +409,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -988,7 +988,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1127,7 +1127,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1214,7 +1214,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1345,7 +1345,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index 1fc85819d8d..742f41729ce 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -99,15 +99,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -353,7 +353,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -401,7 +401,7 @@ jobs: git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git" echo "Git configured with standard GitHub Actions identity" - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -944,7 +944,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1087,7 +1087,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1172,7 +1172,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1272,7 +1272,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "constraint-solving-potd" GH_AW_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" outputs: @@ -1300,7 +1300,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1381,7 +1381,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index cc14c9e20a6..3cfd8421856 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -103,15 +103,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Contribution Check" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -358,7 +358,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -470,7 +470,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1054,7 +1054,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1195,7 +1195,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1280,7 +1280,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1381,7 +1381,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "contribution-check" GH_AW_WORKFLOW_NAME: "Contribution Check" outputs: @@ -1413,7 +1413,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index af5f823385e..e88e4598a89 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -120,7 +120,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -129,8 +129,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -396,7 +396,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -488,7 +488,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1120,7 +1120,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1264,7 +1264,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1351,7 +1351,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1472,7 +1472,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1576,7 +1576,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1659,7 +1659,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent PR Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-agent-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index ed495c6dce8..8ed97ea3c7d 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -101,15 +101,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -367,7 +367,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -424,7 +424,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -993,7 +993,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1140,7 +1140,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1225,7 +1225,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1343,7 +1343,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1420,7 +1420,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "copilot-cli-deep-research" GH_AW_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" outputs: @@ -1448,7 +1448,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/copilot-opt.lock.yml b/.github/workflows/copilot-opt.lock.yml index 7e1a252175a..f0a58b911e8 100644 --- a/.github/workflows/copilot-opt.lock.yml +++ b/.github/workflows/copilot-opt.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Copilot Opt" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -370,7 +370,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -451,7 +451,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1029,7 +1029,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1171,7 +1171,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1256,7 +1256,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1355,7 +1355,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "copilot-opt" GH_AW_WORKFLOW_NAME: "Copilot Opt" outputs: @@ -1385,7 +1385,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1466,7 +1466,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index 1d4380bc622..673c8c1e5c7 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-merged-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -331,7 +331,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-merged-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -406,7 +406,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1059,7 +1059,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-merged-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1203,7 +1203,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-merged-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1288,7 +1288,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1389,7 +1389,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "copilot-pr-merged-report" GH_AW_WORKFLOW_NAME: "Daily Copilot PR Merged Report" outputs: @@ -1417,7 +1417,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-merged-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1500,7 +1500,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot PR Merged Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-merged-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 7f86916c6c9..aafa47fa7a0 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -121,7 +121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -130,8 +130,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -402,7 +402,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -512,7 +512,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1121,7 +1121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1269,7 +1269,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1354,7 +1354,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1472,7 +1472,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1549,7 +1549,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "copilot-pr-nlp-analysis" GH_AW_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" outputs: @@ -1577,7 +1577,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1660,7 +1660,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1714,7 +1714,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-nlp-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1768,7 +1768,7 @@ jobs: GH_AW_ASSETS_ALLOWED_EXTS: ".png,.jpg,.jpeg,.svg" GH_AW_WORKFLOW_NAME: "Copilot PR Conversation NLP Analysis" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index c74a8c010af..b1b24934ad1 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -395,7 +395,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -480,7 +480,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1061,7 +1061,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1209,7 +1209,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1294,7 +1294,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1412,7 +1412,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1489,7 +1489,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "copilot-pr-prompt-analysis" GH_AW_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" outputs: @@ -1517,7 +1517,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1600,7 +1600,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot PR Prompt Pattern Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-pr-prompt-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index c14bb7c5b20..ed8ed5c7e10 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -409,7 +409,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -519,7 +519,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1175,7 +1175,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1319,7 +1319,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1406,7 +1406,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1527,7 +1527,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1631,7 +1631,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1714,7 +1714,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1768,7 +1768,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Session Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-session-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml index 43a429b9278..b542bbf141f 100644 --- a/.github/workflows/copilot-token-audit.lock.yml +++ b/.github/workflows/copilot-token-audit.lock.yml @@ -111,7 +111,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -120,8 +120,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -377,7 +377,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -480,7 +480,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1129,7 +1129,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1289,7 +1289,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1374,7 +1374,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1492,7 +1492,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1568,7 +1568,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "copilot-token-audit" GH_AW_WORKFLOW_ID: "copilot-token-audit" GH_AW_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" @@ -1601,7 +1601,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1683,7 +1683,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Copilot Token Usage Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-audit.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1740,7 +1740,7 @@ jobs: GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url }}/githubnext/agentic-ops/blob/c780d8324935fe1fb30fce545832c10a8f904039/workflows/copilot-token-audit.md" GH_AW_TRACKER_ID: "copilot-token-audit" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/copilot-token-optimizer.lock.yml b/.github/workflows/copilot-token-optimizer.lock.yml index 67f27cd5a56..738e47baf6c 100644 --- a/.github/workflows/copilot-token-optimizer.lock.yml +++ b/.github/workflows/copilot-token-optimizer.lock.yml @@ -109,7 +109,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Token Usage Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -118,8 +118,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Copilot Token Usage Optimizer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -376,7 +376,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Token Usage Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -444,7 +444,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1008,7 +1008,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Token Usage Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1151,7 +1151,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Token Usage Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1224,7 +1224,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "copilot-token-optimizer" GH_AW_WORKFLOW_ID: "copilot-token-optimizer" GH_AW_WORKFLOW_NAME: "Copilot Token Usage Optimizer" @@ -1257,7 +1257,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Token Usage Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-token-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index cc0ed5a47c2..cd352a3bed3 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -405,7 +405,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -457,7 +457,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1005,7 +1005,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1170,7 +1170,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1255,7 +1255,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1363,7 +1363,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1408,7 +1408,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e ⚒️ *Crafted with care by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🛠️ Master Crafter at work! [{workflow_name}]({run_url}) is forging a new workflow on this {event_type}...\",\"runSuccess\":\"⚒️ Masterpiece complete! [{workflow_name}]({run_url}) has crafted your workflow. May it serve you well! 🎖️\",\"runFailure\":\"🛠️ Forge cooling down! [{workflow_name}]({run_url}) {status}. The anvil awaits another attempt...\"}" GH_AW_WORKFLOW_ID: "craft" GH_AW_WORKFLOW_NAME: "Workflow Craft Agent" @@ -1441,7 +1441,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index 37953b0408d..89d800a9558 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-architecture-diagram.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-architecture-diagram.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -438,7 +438,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1080,7 +1080,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-architecture-diagram.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1226,7 +1226,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-architecture-diagram.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1311,7 +1311,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1413,7 +1413,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-architecture-diagram" GH_AW_WORKFLOW_NAME: "Architecture Diagram Generator" outputs: @@ -1445,7 +1445,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-architecture-diagram.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1589,7 +1589,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Diagram Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-architecture-diagram.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 1b439fcca3b..bf7037b4188 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -109,7 +109,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Assign Issue" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-assign-issue-to-user.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -118,8 +118,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Auto-Assign Issue" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -358,7 +358,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Assign Issue" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-assign-issue-to-user.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -407,7 +407,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -973,7 +973,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Assign Issue" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-assign-issue-to-user.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1114,7 +1114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Assign Issue" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-assign-issue-to-user.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1199,7 +1199,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1301,7 +1301,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-assign-issue-to-user" GH_AW_WORKFLOW_NAME: "Auto-Assign Issue" outputs: @@ -1332,7 +1332,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Assign Issue" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-assign-issue-to-user.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml index 18b779c0002..1f6ed4d0bf9 100644 --- a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml +++ b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml @@ -114,7 +114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -123,8 +123,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -406,7 +406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -468,7 +468,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1084,7 +1084,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1228,7 +1228,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1321,7 +1321,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1430,7 +1430,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1529,7 +1529,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AstroStyleLite Markdown Spellcheck" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml index 8e6794c6f7e..7e2d6f7c67f 100644 --- a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml +++ b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -375,7 +375,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -446,7 +446,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1065,7 +1065,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1209,7 +1209,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1296,7 +1296,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1429,7 +1429,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1512,7 +1512,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily AW Cross-Repo Compile Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-cache-strategy-analyzer.lock.yml b/.github/workflows/daily-cache-strategy-analyzer.lock.yml index 35089104eb8..18db649626b 100644 --- a/.github/workflows/daily-cache-strategy-analyzer.lock.yml +++ b/.github/workflows/daily-cache-strategy-analyzer.lock.yml @@ -122,7 +122,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cache-strategy-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -131,8 +131,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -394,7 +394,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cache-strategy-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -493,7 +493,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -1170,7 +1170,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cache-strategy-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1315,7 +1315,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cache-strategy-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1398,7 +1398,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1429,18 +1429,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d354308691e446db_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_de64d9d18b620726_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_d354308691e446db_EOF + GH_AW_MCP_CONFIG_de64d9d18b620726_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_1cf1f82b6bfdfa02_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_b478abb36de9495d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1451,11 +1451,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_1cf1f82b6bfdfa02_EOF + GH_AW_MCP_CONFIG_b478abb36de9495d_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_3c09957d6481cf7a_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_73dbda43b4bb5649_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1465,7 +1465,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_3c09957d6481cf7a_EOF + GH_AW_CODEX_SHELL_POLICY_73dbda43b4bb5649_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1592,7 +1592,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cache-strategy-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1675,7 +1675,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Cache Strategy Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cache-strategy-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-caveman-optimizer.lock.yml b/.github/workflows/daily-caveman-optimizer.lock.yml index ce587ca6270..d200bc34b75 100644 --- a/.github/workflows/daily-caveman-optimizer.lock.yml +++ b/.github/workflows/daily-caveman-optimizer.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-caveman-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -376,7 +376,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-caveman-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -447,7 +447,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1073,7 +1073,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-caveman-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1218,7 +1218,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-caveman-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1305,7 +1305,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1439,7 +1439,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-caveman-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1583,7 +1583,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Caveman Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-caveman-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-choice-test.lock.yml b/.github/workflows/daily-choice-test.lock.yml index 2b150dccd8a..fcb7735ecbd 100644 --- a/.github/workflows/daily-choice-test.lock.yml +++ b/.github/workflows/daily-choice-test.lock.yml @@ -112,7 +112,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Choice Type Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-choice-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -121,8 +121,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Choice Type Test" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -361,7 +361,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Choice Type Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-choice-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -417,7 +417,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1015,7 +1015,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Choice Type Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-choice-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1157,7 +1157,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Choice Type Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-choice-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1244,7 +1244,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1374,7 +1374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Choice Type Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-choice-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index e78e80e61f5..e694b94c848 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -142,7 +142,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -151,8 +151,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -415,7 +415,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -474,7 +474,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1247,7 +1247,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1399,7 +1399,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1484,7 +1484,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1593,7 +1593,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1663,7 +1663,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1741,7 +1741,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-cli-performance" GH_AW_WORKFLOW_ID: "daily-cli-performance" GH_AW_WORKFLOW_NAME: "Daily CLI Performance Agent" @@ -1774,7 +1774,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Performance Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-performance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 2a10e748046..2d6850ef461 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -117,7 +117,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-tools-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -126,8 +126,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-tools-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -453,7 +453,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1088,7 +1088,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-tools-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1231,7 +1231,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-tools-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1316,7 +1316,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1416,7 +1416,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-cli-tools-tester" GH_AW_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" outputs: @@ -1446,7 +1446,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily CLI Tools Exploratory Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-cli-tools-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index ac38fcca27e..683ea192a07 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -394,7 +394,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -494,7 +494,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1154,7 +1154,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1303,7 +1303,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1390,7 +1390,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1511,7 +1511,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1616,7 +1616,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1699,7 +1699,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1753,7 +1753,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Code Metrics and Trend Tracking Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-code-metrics.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index 46b3f41d445..cb534351a56 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: "claude-haiku-4.5" - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -423,7 +423,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -498,7 +498,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1154,7 +1154,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1301,7 +1301,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1392,7 +1392,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1497,7 +1497,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1584,7 +1584,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1661,7 +1661,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: "claude-haiku-4.5" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-community-attribution" GH_AW_WORKFLOW_NAME: "Daily Community Attribution Updater" outputs: @@ -1693,7 +1693,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Community Attribution Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-community-attribution.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 796ad72a697..0ad04e78291 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -412,7 +412,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -476,7 +476,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1101,7 +1101,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1250,7 +1250,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1335,7 +1335,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1436,7 +1436,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-compiler-quality" GH_AW_WORKFLOW_ID: "daily-compiler-quality" GH_AW_WORKFLOW_NAME: "Daily Compiler Quality Check" @@ -1465,7 +1465,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1548,7 +1548,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml index 8d9522ccbed..856a0283be9 100644 --- a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml +++ b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -423,7 +423,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1043,7 +1043,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1193,7 +1193,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1278,7 +1278,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1379,7 +1379,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-compiler-threat-spec-optimizer" GH_AW_WORKFLOW_ID: "daily-compiler-threat-spec-optimizer" GH_AW_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" @@ -1410,7 +1410,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Compiler Threat Spec Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index bf458545eed..33158c6a388 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-healer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -379,7 +379,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-healer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -450,7 +450,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1168,7 +1168,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-healer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1317,7 +1317,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-healer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1404,7 +1404,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1543,7 +1543,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-healer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1703,7 +1703,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Healer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-healer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index 22b54ab1360..19471fa7700 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -376,7 +376,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -447,7 +447,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1104,7 +1104,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1249,7 +1249,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1336,7 +1336,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1470,7 +1470,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1614,7 +1614,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Documentation Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-doc-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-experiment-report.lock.yml b/.github/workflows/daily-experiment-report.lock.yml index bba7f7ba705..0bc292587a4 100644 --- a/.github/workflows/daily-experiment-report.lock.yml +++ b/.github/workflows/daily-experiment-report.lock.yml @@ -117,7 +117,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -126,8 +126,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "daily-experiment-report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -380,7 +380,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -461,7 +461,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1099,7 +1099,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1243,7 +1243,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1328,7 +1328,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1430,7 +1430,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-experiment-report" GH_AW_WORKFLOW_NAME: "daily-experiment-report" outputs: @@ -1460,7 +1460,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1543,7 +1543,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1597,7 +1597,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "daily-experiment-report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-experiment-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1651,7 +1651,7 @@ jobs: GH_AW_ASSETS_ALLOWED_EXTS: ".png,.jpg,.jpeg,.svg" GH_AW_WORKFLOW_NAME: "daily-experiment-report" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 798ea89c5c4..18f4731f7e2 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-fact.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: "gpt-5.4-mini" - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -473,7 +473,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-fact.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -556,7 +556,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -1179,7 +1179,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-fact.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1323,7 +1323,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-fact.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1406,7 +1406,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1437,18 +1437,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_9b6edca4d28d8598_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_6853ff0b13364b25_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_9b6edca4d28d8598_EOF + GH_AW_MCP_CONFIG_6853ff0b13364b25_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_eacdab9d1f0b93f0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ce7d2eb37e755cec_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1459,11 +1459,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_eacdab9d1f0b93f0_EOF + GH_AW_MCP_CONFIG_ce7d2eb37e755cec_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_7d49e902cc0ed53a_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_df21b9df5f7e3cea_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1473,7 +1473,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_7d49e902cc0ed53a_EOF + GH_AW_CODEX_SHELL_POLICY_df21b9df5f7e3cea_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1602,7 +1602,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-fact.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1685,7 +1685,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Fact About gh-aw" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-fact.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 8f413536903..859b3bc33de 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -122,7 +122,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily File Diet" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-file-diet.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -131,8 +131,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily File Diet" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -411,7 +411,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily File Diet" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-file-diet.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -460,7 +460,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1068,7 +1068,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily File Diet" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-file-diet.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1214,7 +1214,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily File Diet" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-file-diet.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1299,7 +1299,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1406,7 +1406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily File Diet" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-file-diet.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1451,7 +1451,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-file-diet" GH_AW_WORKFLOW_ID: "daily-file-diet" GH_AW_WORKFLOW_NAME: "Daily File Diet" @@ -1482,7 +1482,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily File Diet" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-file-diet.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 060e8e62486..643bf325f4f 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -122,7 +122,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -131,8 +131,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -390,7 +390,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -501,7 +501,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1142,7 +1142,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1291,7 +1291,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1376,7 +1376,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1476,7 +1476,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-firewall-report" GH_AW_WORKFLOW_ID: "daily-firewall-report" GH_AW_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" @@ -1505,7 +1505,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1588,7 +1588,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1642,7 +1642,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-firewall-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1697,7 +1697,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Daily Firewall Logs Collector and Reporter" GH_AW_TRACKER_ID: "daily-firewall-report" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 922a35e4b6b..60b21fa4e07 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -120,7 +120,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-function-namer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -129,8 +129,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -411,7 +411,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-function-namer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -482,7 +482,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1154,7 +1154,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-function-namer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1299,7 +1299,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-function-namer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1386,7 +1386,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1520,7 +1520,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-function-namer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1603,7 +1603,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Go Function Namer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-function-namer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-geo-optimizer.lock.yml b/.github/workflows/daily-geo-optimizer.lock.yml index bfb016f26aa..e282d5607e9 100644 --- a/.github/workflows/daily-geo-optimizer.lock.yml +++ b/.github/workflows/daily-geo-optimizer.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GEO Optimizer Daily Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-geo-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "GEO Optimizer Daily Audit" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -375,7 +375,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GEO Optimizer Daily Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-geo-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -430,7 +430,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1001,7 +1001,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GEO Optimizer Daily Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-geo-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1149,7 +1149,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GEO Optimizer Daily Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-geo-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1234,7 +1234,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1399,7 +1399,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-geo-optimizer" GH_AW_WORKFLOW_ID: "daily-geo-optimizer" GH_AW_WORKFLOW_NAME: "GEO Optimizer Daily Audit" @@ -1428,7 +1428,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GEO Optimizer Daily Audit" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-geo-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml index c7ba6e24bb0..0c8b63a20df 100644 --- a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Grafana OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Grafana OTel Instrumentation Advisor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Grafana OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -430,7 +430,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1084,7 +1084,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Grafana OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1228,7 +1228,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Grafana OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1315,7 +1315,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1449,7 +1449,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Grafana OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-hippo-learn.lock.yml b/.github/workflows/daily-hippo-learn.lock.yml index 1732f7e0fa9..d90253f9471 100644 --- a/.github/workflows/daily-hippo-learn.lock.yml +++ b/.github/workflows/daily-hippo-learn.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-hippo-learn.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -376,7 +376,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-hippo-learn.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -451,7 +451,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1131,7 +1131,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-hippo-learn.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1280,7 +1280,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-hippo-learn.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1365,7 +1365,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1466,7 +1466,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-hippo-learn" GH_AW_WORKFLOW_ID: "daily-hippo-learn" GH_AW_WORKFLOW_NAME: "Daily Hippo Learn" @@ -1495,7 +1495,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-hippo-learn.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1578,7 +1578,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Hippo Learn" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-hippo-learn.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 0db872d378a..046410f943d 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -436,7 +436,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -695,7 +695,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1287,7 +1287,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1436,7 +1436,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1527,7 +1527,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1632,7 +1632,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1702,7 +1702,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-issues-report" GH_AW_WORKFLOW_ID: "daily-issues-report" GH_AW_WORKFLOW_NAME: "Daily Issues Report Generator" @@ -1731,7 +1731,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1814,7 +1814,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1868,7 +1868,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-issues-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1923,7 +1923,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Daily Issues Report Generator" GH_AW_TRACKER_ID: "daily-issues-report" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index e0b1061d7ff..6dc079f4b0f 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -113,7 +113,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Malicious Code Scan Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-malicious-code-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -122,8 +122,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Malicious Code Scan Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -364,7 +364,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Malicious Code Scan Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-malicious-code-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -413,7 +413,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1006,7 +1006,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Malicious Code Scan Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-malicious-code-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1122,7 +1122,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "malicious-code-scan" GH_AW_WORKFLOW_ID: "daily-malicious-code-scan" GH_AW_WORKFLOW_NAME: "Daily Malicious Code Scan Agent" @@ -1152,7 +1152,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Malicious Code Scan Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-malicious-code-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index 831ed0e05eb..fe5f7c86ac7 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-mcp-concurrency-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -409,7 +409,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-mcp-concurrency-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -473,7 +473,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1137,7 +1137,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-mcp-concurrency-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1286,7 +1286,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-mcp-concurrency-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1371,7 +1371,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1472,7 +1472,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "mcp-concurrency-analysis" GH_AW_WORKFLOW_ID: "daily-mcp-concurrency-analysis" GH_AW_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" @@ -1505,7 +1505,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-mcp-concurrency-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1589,7 +1589,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily MCP Tool Concurrency Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-mcp-concurrency-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-model-inventory.lock.yml b/.github/workflows/daily-model-inventory.lock.yml index 2fbeea0cdd6..da9de5a4521 100644 --- a/.github/workflows/daily-model-inventory.lock.yml +++ b/.github/workflows/daily-model-inventory.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Model Inventory Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-model-inventory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Model Inventory Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -377,7 +377,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Model Inventory Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-model-inventory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -438,7 +438,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1389,7 +1389,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Model Inventory Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-model-inventory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1535,7 +1535,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Model Inventory Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-model-inventory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1620,7 +1620,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1719,7 +1719,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-model-inventory" GH_AW_WORKFLOW_ID: "daily-model-inventory" GH_AW_WORKFLOW_NAME: "Daily Model Inventory Checker" @@ -1750,7 +1750,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Model Inventory Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-model-inventory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 553e28abccb..b43226c911a 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Multi-Device Docs Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-multi-device-docs-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Multi-Device Docs Tester" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -378,7 +378,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Multi-Device Docs Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-multi-device-docs-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -439,7 +439,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Install Playwright CLI run: npm install -g @playwright/cli@0.1.11 - name: Install Playwright CLI skills @@ -1141,7 +1141,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Multi-Device Docs Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-multi-device-docs-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1285,7 +1285,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Multi-Device Docs Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-multi-device-docs-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1372,7 +1372,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1511,7 +1511,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Multi-Device Docs Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-multi-device-docs-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 9095d4fa646..52e2760f858 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -121,7 +121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -130,8 +130,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily News" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -401,7 +401,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -570,7 +570,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1212,7 +1212,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1365,7 +1365,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1450,7 +1450,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1568,7 +1568,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1645,7 +1645,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-news-weekday" GH_AW_WORKFLOW_ID: "daily-news" GH_AW_WORKFLOW_NAME: "Daily News" @@ -1679,7 +1679,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1768,7 +1768,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1822,7 +1822,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily News" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-news.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1877,7 +1877,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Daily News" GH_AW_TRACKER_ID: "daily-news-weekday" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 8793538bffc..4344151eb88 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -120,7 +120,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Observability Report for AWF Firewall and MCP Gateway" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-observability-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -129,8 +129,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Daily Observability Report for AWF Firewall and MCP Gateway" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -379,7 +379,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Observability Report for AWF Firewall and MCP Gateway" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-observability-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -463,7 +463,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -1094,7 +1094,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Observability Report for AWF Firewall and MCP Gateway" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-observability-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1238,7 +1238,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Observability Report for AWF Firewall and MCP Gateway" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-observability-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1321,7 +1321,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1352,18 +1352,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_de3f1263671e4034_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_cf356300878a553d_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_de3f1263671e4034_EOF + GH_AW_MCP_CONFIG_cf356300878a553d_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_d88b550a815ded00_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5fdd263a8f0d68ec_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1374,11 +1374,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_d88b550a815ded00_EOF + GH_AW_MCP_CONFIG_5fdd263a8f0d68ec_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_ed2479ec8e47b87e_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_fda4aecbc854514f_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1388,7 +1388,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_ed2479ec8e47b87e_EOF + GH_AW_CODEX_SHELL_POLICY_fda4aecbc854514f_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1513,7 +1513,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Observability Report for AWF Firewall and MCP Gateway" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-observability-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml index 63674468210..a0a6564c6c8 100644 --- a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily OTel Instrumentation Advisor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -372,7 +372,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -428,7 +428,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1077,7 +1077,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1221,7 +1221,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1308,7 +1308,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1442,7 +1442,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily OTel Instrumentation Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-otel-instrumentation-advisor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index 84ad70343e6..8dc98626219 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -121,7 +121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -130,8 +130,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -390,7 +390,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -471,7 +471,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1542,7 +1542,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1691,7 +1691,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1776,7 +1776,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1876,7 +1876,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-performance-summary" GH_AW_WORKFLOW_ID: "daily-performance-summary" GH_AW_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" @@ -1905,7 +1905,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1988,7 +1988,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -2042,7 +2042,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-performance-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -2097,7 +2097,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Daily Project Performance Summary Generator (Using MCP Scripts)" GH_AW_TRACKER_ID: "daily-performance-summary" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 9896bf694af..678de1920b4 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Regulatory Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-regulatory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Regulatory Report Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Regulatory Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-regulatory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -423,7 +423,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1461,7 +1461,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Regulatory Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-regulatory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1609,7 +1609,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Regulatory Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-regulatory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1694,7 +1694,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1794,7 +1794,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-regulatory" GH_AW_WORKFLOW_ID: "daily-regulatory" GH_AW_WORKFLOW_NAME: "Daily Regulatory Report Generator" @@ -1823,7 +1823,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Regulatory Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-regulatory.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index 47e48fc48a7..b340d83af33 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -128,7 +128,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -137,8 +137,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -398,7 +398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -499,7 +499,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1237,7 +1237,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1384,7 +1384,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1471,7 +1471,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1581,7 +1581,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1658,7 +1658,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1802,7 +1802,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Rendering Scripts Verifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-rendering-scripts-verifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 9f5e48d16a1..2eef034f770 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -381,7 +381,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -464,7 +464,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1051,7 +1051,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1200,7 +1200,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1285,7 +1285,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1386,7 +1386,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-repo-chronicle" GH_AW_WORKFLOW_ID: "daily-repo-chronicle" GH_AW_WORKFLOW_NAME: "The Daily Repository Chronicle" @@ -1415,7 +1415,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1498,7 +1498,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1552,7 +1552,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-repo-chronicle.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1607,7 +1607,7 @@ jobs: GH_AW_WORKFLOW_NAME: "The Daily Repository Chronicle" GH_AW_TRACKER_ID: "daily-repo-chronicle" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index 3f245613965..e6ff3ef608a 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -114,7 +114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Integrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-integrator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -123,8 +123,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Safe Output Integrator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -368,7 +368,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Integrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-integrator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -417,7 +417,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1042,7 +1042,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Integrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-integrator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1192,7 +1192,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Integrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-integrator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1277,7 +1277,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1379,7 +1379,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-safe-output-integrator" GH_AW_WORKFLOW_ID: "daily-safe-output-integrator" GH_AW_WORKFLOW_NAME: "Daily Safe Output Integrator" @@ -1410,7 +1410,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Integrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-integrator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index 00b52699a60..0d783e05dcf 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -126,7 +126,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -135,8 +135,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -391,7 +391,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -499,7 +499,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1218,7 +1218,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1358,7 +1358,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1445,7 +1445,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1555,7 +1555,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1630,7 +1630,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1713,7 +1713,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Output Tool Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-output-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index 5ab7128fb20..7bfca01c169 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Outputs Conformance Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-outputs-conformance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Safe Outputs Conformance Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -365,7 +365,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Outputs Conformance Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-outputs-conformance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -421,7 +421,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1050,7 +1050,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Outputs Conformance Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-outputs-conformance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1194,7 +1194,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Outputs Conformance Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-outputs-conformance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1281,7 +1281,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1415,7 +1415,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Safe Outputs Conformance Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-safe-outputs-conformance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index 074c2e71723..783bb47df39 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -113,7 +113,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Secrets Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-secrets-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -122,8 +122,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Secrets Analysis Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -366,7 +366,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Secrets Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-secrets-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -415,7 +415,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -962,7 +962,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Secrets Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-secrets-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1110,7 +1110,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Secrets Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-secrets-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1195,7 +1195,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1296,7 +1296,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-secrets-analysis" GH_AW_WORKFLOW_ID: "daily-secrets-analysis" GH_AW_WORKFLOW_NAME: "Daily Secrets Analysis Agent" @@ -1325,7 +1325,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Secrets Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-secrets-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-security-observability.lock.yml b/.github/workflows/daily-security-observability.lock.yml index a17dc899f3b..c067dcda06a 100644 --- a/.github/workflows/daily-security-observability.lock.yml +++ b/.github/workflows/daily-security-observability.lock.yml @@ -125,7 +125,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -134,8 +134,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -399,7 +399,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -538,7 +538,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1173,7 +1173,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1322,7 +1322,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1407,7 +1407,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1507,7 +1507,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-security-observability" GH_AW_WORKFLOW_ID: "daily-security-observability" GH_AW_WORKFLOW_NAME: "Daily Security Observability Report" @@ -1536,7 +1536,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1619,7 +1619,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1673,7 +1673,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-observability.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1728,7 +1728,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Daily Security Observability Report" GH_AW_TRACKER_ID: "daily-security-observability" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index d299ce66993..6ea3b669be0 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-red-team.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -382,7 +382,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-red-team.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -453,7 +453,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1098,7 +1098,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-red-team.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1244,7 +1244,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-red-team.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1331,7 +1331,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1465,7 +1465,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-red-team.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1548,7 +1548,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Security Red Team Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-security-red-team.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-semgrep-scan.lock.yml b/.github/workflows/daily-semgrep-scan.lock.yml index 83100222936..b295f1626b6 100644 --- a/.github/workflows/daily-semgrep-scan.lock.yml +++ b/.github/workflows/daily-semgrep-scan.lock.yml @@ -113,7 +113,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Semgrep Scan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-semgrep-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -122,8 +122,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Semgrep Scan" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -365,7 +365,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Semgrep Scan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-semgrep-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -414,7 +414,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1000,7 +1000,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Semgrep Scan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-semgrep-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1141,7 +1141,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Semgrep Scan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-semgrep-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1226,7 +1226,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1326,7 +1326,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-semgrep-scan" GH_AW_WORKFLOW_NAME: "Daily Semgrep Scan" outputs: @@ -1355,7 +1355,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Semgrep Scan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-semgrep-scan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-sentrux-report.lock.yml b/.github/workflows/daily-sentrux-report.lock.yml index 562b89f4c5d..cf547b5f22a 100644 --- a/.github/workflows/daily-sentrux-report.lock.yml +++ b/.github/workflows/daily-sentrux-report.lock.yml @@ -115,7 +115,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-sentrux-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -124,8 +124,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -383,7 +383,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-sentrux-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -450,7 +450,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1019,7 +1019,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-sentrux-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1166,7 +1166,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-sentrux-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1251,7 +1251,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1368,7 +1368,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-sentrux-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1445,7 +1445,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "daily-sentrux-report" GH_AW_WORKFLOW_NAME: "Daily Sentrux Report" outputs: @@ -1473,7 +1473,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sentrux Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-sentrux-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-skill-optimizer.lock.yml b/.github/workflows/daily-skill-optimizer.lock.yml index c8c6c12e726..e5e7bd2d65b 100644 --- a/.github/workflows/daily-skill-optimizer.lock.yml +++ b/.github/workflows/daily-skill-optimizer.lock.yml @@ -113,7 +113,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-skill-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -122,8 +122,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -369,7 +369,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-skill-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -424,7 +424,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -984,7 +984,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-skill-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1130,7 +1130,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-skill-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1215,7 +1215,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1314,7 +1314,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-skill-optimizer" GH_AW_WORKFLOW_ID: "daily-skill-optimizer" GH_AW_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" @@ -1345,7 +1345,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Skill Optimizer Improvements" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-skill-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-spdd-spec-planner.lock.yml b/.github/workflows/daily-spdd-spec-planner.lock.yml index 323bff3767b..9c4f3383866 100644 --- a/.github/workflows/daily-spdd-spec-planner.lock.yml +++ b/.github/workflows/daily-spdd-spec-planner.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -361,7 +361,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -428,7 +428,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -998,7 +998,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1147,7 +1147,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1232,7 +1232,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1332,7 +1332,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-spdd-spec-planner" GH_AW_WORKFLOW_ID: "daily-spdd-spec-planner" GH_AW_WORKFLOW_NAME: "Daily SPDD Spec Planner" @@ -1365,7 +1365,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1462,7 +1462,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-subagent-optimizer.lock.yml b/.github/workflows/daily-subagent-optimizer.lock.yml index 07e27c4d150..86fbad6e348 100644 --- a/.github/workflows/daily-subagent-optimizer.lock.yml +++ b/.github/workflows/daily-subagent-optimizer.lock.yml @@ -109,15 +109,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -473,7 +473,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1121,7 +1121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1264,7 +1264,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1351,7 +1351,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1484,7 +1484,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1565,7 +1565,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 441ce5568c1..cc7bde4cbc0 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -112,7 +112,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Syntax Error Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-syntax-error-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -121,8 +121,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Syntax Error Quality Check" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -364,7 +364,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Syntax Error Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-syntax-error-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -426,7 +426,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1035,7 +1035,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Syntax Error Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-syntax-error-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1183,7 +1183,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Syntax Error Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-syntax-error-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1268,7 +1268,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1369,7 +1369,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-syntax-error-quality" GH_AW_WORKFLOW_ID: "daily-syntax-error-quality" GH_AW_WORKFLOW_NAME: "Daily Syntax Error Quality Check" @@ -1400,7 +1400,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Syntax Error Quality Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-syntax-error-quality.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index 1f61590594c..a40e776a113 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -114,7 +114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Evolution Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-evolution-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -123,8 +123,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Team Evolution Insights" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -368,7 +368,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Evolution Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-evolution-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -424,7 +424,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1024,7 +1024,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Evolution Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-evolution-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1168,7 +1168,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Evolution Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-evolution-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1255,7 +1255,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1387,7 +1387,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Evolution Insights" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-evolution-insights.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index c23df8e4978..391f12928b8 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Status" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-status.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Team Status" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -381,7 +381,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Status" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-status.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -430,7 +430,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1017,7 +1017,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Status" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-status.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1175,7 +1175,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Status" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-status.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1260,7 +1260,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1366,7 +1366,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Status" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-status.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check stop-time limit id: check_stop_time uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1399,7 +1399,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-team-status" GH_AW_WORKFLOW_ID: "daily-team-status" GH_AW_WORKFLOW_NAME: "Daily Team Status" @@ -1432,7 +1432,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Team Status" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-team-status.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 340e78e7126..71c89c41e1c 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -122,7 +122,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -131,8 +131,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -425,7 +425,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -484,7 +484,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1112,7 +1112,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1262,7 +1262,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1347,7 +1347,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1454,7 +1454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1517,7 +1517,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1593,7 +1593,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-testify-uber-super-expert" GH_AW_WORKFLOW_ID: "daily-testify-uber-super-expert" GH_AW_WORKFLOW_NAME: "Daily Testify Uber Super Expert" @@ -1624,7 +1624,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Testify Uber Super Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-testify-uber-super-expert.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-token-consumption-report.lock.yml b/.github/workflows/daily-token-consumption-report.lock.yml index ea4ab895630..d208bc1381b 100644 --- a/.github/workflows/daily-token-consumption-report.lock.yml +++ b/.github/workflows/daily-token-consumption-report.lock.yml @@ -117,7 +117,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Token Consumption Report (Sentry OTel)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-token-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -126,8 +126,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Daily Token Consumption Report (Sentry OTel)" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -370,7 +370,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Token Consumption Report (Sentry OTel)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-token-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -431,7 +431,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1119,7 +1119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Token Consumption Report (Sentry OTel)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-token-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1263,7 +1263,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Token Consumption Report (Sentry OTel)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-token-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1350,7 +1350,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1484,7 +1484,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Token Consumption Report (Sentry OTel)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-token-consumption-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 218f787bcc8..0e96d2d911c 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -111,7 +111,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Workflow Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-workflow-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -120,8 +120,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Daily Workflow Updater" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -363,7 +363,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Workflow Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-workflow-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -412,7 +412,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -974,7 +974,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Workflow Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-workflow-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1122,7 +1122,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Workflow Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-workflow-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1207,7 +1207,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1308,7 +1308,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "daily-workflow-updater" GH_AW_WORKFLOW_ID: "daily-workflow-updater" GH_AW_WORKFLOW_NAME: "Daily Workflow Updater" @@ -1339,7 +1339,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Daily Workflow Updater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-workflow-updater.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 663228db32d..2f8af9462d0 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -111,15 +111,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -376,7 +376,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -448,7 +448,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1005,7 +1005,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1149,7 +1149,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1234,7 +1234,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1341,7 +1341,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1387,7 +1387,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "dead-code-remover" GH_AW_WORKFLOW_NAME: "Dead Code Removal Agent" outputs: @@ -1417,7 +1417,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1559,7 +1559,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 161fa563680..e8a8defed2c 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -113,15 +113,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -429,7 +429,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -559,7 +559,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1262,7 +1262,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1411,7 +1411,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1504,7 +1504,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1613,7 +1613,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1700,7 +1700,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1810,7 +1810,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1897,7 +1897,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 4f20d7d4957..0820a767c8c 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -114,7 +114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Delight" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/delight.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -123,8 +123,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Delight" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -381,7 +381,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Delight" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/delight.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -440,7 +440,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1065,7 +1065,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Delight" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/delight.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1218,7 +1218,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Delight" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/delight.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1303,7 +1303,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1421,7 +1421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Delight" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/delight.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1498,7 +1498,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📊 *User experience analysis by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"📊 Delight Agent starting! [{workflow_name}]({run_url}) is analyzing user-facing aspects for improvement opportunities...\",\"runSuccess\":\"✅ Analysis complete! [{workflow_name}]({run_url}) has identified targeted improvements for user experience.\",\"runFailure\":\"⚠️ Analysis interrupted! [{workflow_name}]({run_url}) {status}. Please review the logs...\"}" GH_AW_TRACKER_ID: "delight-daily" GH_AW_WORKFLOW_ID: "delight" @@ -1530,7 +1530,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Delight" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/delight.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 061c6f540e9..613a129cf37 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -101,15 +101,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Dependabot Burner" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -352,7 +352,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -399,7 +399,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -941,7 +941,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1082,7 +1082,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1167,7 +1167,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1266,7 +1266,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "dependabot-burner" GH_AW_WORKFLOW_NAME: "Dependabot Burner" outputs: @@ -1296,7 +1296,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index c4cfed49efe..6bb0decadc9 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -101,15 +101,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -356,7 +356,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -403,7 +403,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -964,7 +964,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1105,7 +1105,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1190,7 +1190,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1289,7 +1289,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "dependabot-go-checker" GH_AW_WORKFLOW_NAME: "Dependabot Dependency Checker" outputs: @@ -1319,7 +1319,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dependabot-repair.lock.yml b/.github/workflows/dependabot-repair.lock.yml index 7f56c2b7803..885ddda0264 100644 --- a/.github/workflows/dependabot-repair.lock.yml +++ b/.github/workflows/dependabot-repair.lock.yml @@ -104,15 +104,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -364,7 +364,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -411,7 +411,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1039,7 +1039,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1192,7 +1192,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1277,7 +1277,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1384,7 +1384,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1418,7 +1418,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "dependabot-repair" GH_AW_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_WORKFLOW_SOURCE: "githubnext/dependabot-campaign/.github/workflows/dependabot-repair.md@ff91842c074b23270d3a0e26a7206a251232a374" @@ -1452,7 +1452,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/deployment-incident-monitor.lock.yml b/.github/workflows/deployment-incident-monitor.lock.yml index 30112490b0f..0030799a3c9 100644 --- a/.github/workflows/deployment-incident-monitor.lock.yml +++ b/.github/workflows/deployment-incident-monitor.lock.yml @@ -99,15 +99,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -359,7 +359,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -406,7 +406,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -942,7 +942,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1083,7 +1083,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1168,7 +1168,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1276,7 +1276,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1321,7 +1321,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "deployment-incident-monitor" GH_AW_WORKFLOW_NAME: "Deployment Incident Monitor" outputs: @@ -1351,7 +1351,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/design-decision-gate.lock.yml b/.github/workflows/design-decision-gate.lock.yml index 595ea4b9d42..e4804594e30 100644 --- a/.github/workflows/design-decision-gate.lock.yml +++ b/.github/workflows/design-decision-gate.lock.yml @@ -120,15 +120,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -392,7 +392,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -506,7 +506,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1133,7 +1133,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1273,7 +1273,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1360,7 +1360,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1473,7 +1473,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1539,7 +1539,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index e2ce0f33e26..0266afd9f51 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -110,15 +110,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Dev Hawk" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -388,7 +388,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -465,7 +465,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1058,7 +1058,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1200,7 +1200,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1285,7 +1285,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1393,7 +1393,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1427,7 +1427,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🦅 *Observed from above by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🦅 Dev Hawk circles the sky! [{workflow_name}]({run_url}) is monitoring this {event_type} from above...\",\"runSuccess\":\"🦅 Hawk eyes report! [{workflow_name}]({run_url}) has completed reconnaissance. Intel delivered! 🎯\",\"runFailure\":\"🦅 Hawk down! [{workflow_name}]({run_url}) {status}. The skies grow quiet...\"}" GH_AW_WORKFLOW_ID: "dev-hawk" GH_AW_WORKFLOW_NAME: "Dev Hawk" @@ -1458,7 +1458,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 332a1a49341..755dc4708c9 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -121,7 +121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -130,8 +130,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -429,7 +429,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -510,7 +510,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1238,7 +1238,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1384,7 +1384,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1471,7 +1471,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1592,7 +1592,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1699,7 +1699,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1843,7 +1843,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Developer Documentation Consolidator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/developer-docs-consolidator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 0c97765048b..e4274d83505 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dictation Prompt Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dictation-prompt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Dictation Prompt Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -352,7 +352,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dictation Prompt Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dictation-prompt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -399,7 +399,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -944,7 +944,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dictation Prompt Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dictation-prompt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1087,7 +1087,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dictation Prompt Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dictation-prompt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1172,7 +1172,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1273,7 +1273,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "dictation-prompt" GH_AW_WORKFLOW_NAME: "Dictation Prompt Generator" outputs: @@ -1303,7 +1303,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Dictation Prompt Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dictation-prompt.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index bf6e3a92ef7..3851ec0720d 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -103,15 +103,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/discussion-task-miner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -367,7 +367,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/discussion-task-miner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -427,7 +427,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1026,7 +1026,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/discussion-task-miner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1177,7 +1177,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/discussion-task-miner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1262,7 +1262,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1380,7 +1380,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/discussion-task-miner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1458,7 +1458,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔍 *Task mining by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔍 Discussion Task Miner starting! [{workflow_name}]({run_url}) is scanning discussions for code quality improvements...\",\"runSuccess\":\"✅ Task mining complete! [{workflow_name}]({run_url}) has identified actionable code quality tasks. 📊\",\"runFailure\":\"⚠️ Task mining interrupted! [{workflow_name}]({run_url}) {status}. Please review the logs...\"}" GH_AW_TRACKER_ID: "discussion-task-miner" GH_AW_WORKFLOW_ID: "discussion-task-miner" @@ -1492,7 +1492,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Discussion Task Miner - Code Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/discussion-task-miner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index f292f1aef7a..6e4700c952c 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -114,7 +114,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/docs-noob-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -123,8 +123,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -371,7 +371,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/docs-noob-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -425,7 +425,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1022,7 +1022,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/docs-noob-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1165,7 +1165,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/docs-noob-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1250,7 +1250,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1351,7 +1351,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "docs-noob-tester" GH_AW_WORKFLOW_NAME: "Documentation Noob Tester" outputs: @@ -1379,7 +1379,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/docs-noob-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1461,7 +1461,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/docs-noob-tester.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1515,7 +1515,7 @@ jobs: GH_AW_ASSETS_ALLOWED_EXTS: ".png,.jpg,.jpeg,.svg" GH_AW_WORKFLOW_NAME: "Documentation Noob Tester" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/draft-pr-cleanup.lock.yml b/.github/workflows/draft-pr-cleanup.lock.yml index 62ada4f1f1d..7c70cc80465 100644 --- a/.github/workflows/draft-pr-cleanup.lock.yml +++ b/.github/workflows/draft-pr-cleanup.lock.yml @@ -97,15 +97,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Draft PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/draft-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Draft PR Cleanup" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -344,7 +344,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Draft PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/draft-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -391,7 +391,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -974,7 +974,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Draft PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/draft-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1116,7 +1116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Draft PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/draft-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1201,7 +1201,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1303,7 +1303,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"runStarted\":\"🧹 Starting draft PR cleanup... [{workflow_name}]({run_url}) is reviewing draft PRs for staleness\",\"runSuccess\":\"✅ Draft PR cleanup complete! [{workflow_name}]({run_url}) has reviewed and processed stale drafts.\",\"runFailure\":\"❌ Draft PR cleanup failed! [{workflow_name}]({run_url}) {status}. Some draft PRs may not be processed.\"}" GH_AW_WORKFLOW_ID: "draft-pr-cleanup" GH_AW_WORKFLOW_NAME: "Draft PR Cleanup" @@ -1334,7 +1334,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Draft PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/draft-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index f3b54a49309..8137adf8223 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Duplicate Code Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/duplicate-code-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Duplicate Code Detector" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -395,7 +395,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Duplicate Code Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/duplicate-code-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -447,7 +447,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -1064,7 +1064,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Duplicate Code Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/duplicate-code-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1203,7 +1203,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Duplicate Code Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/duplicate-code-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1286,7 +1286,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1317,18 +1317,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_71822c419cea3bc2_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_c51711226436d0bd_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_71822c419cea3bc2_EOF + GH_AW_MCP_CONFIG_c51711226436d0bd_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_5725bb92c620c071_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_4bfa2b3d3ee1ceab_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1339,11 +1339,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_5725bb92c620c071_EOF + GH_AW_MCP_CONFIG_4bfa2b3d3ee1ceab_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_232df0be1013419f_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_ccbf946e47882948_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1353,7 +1353,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_232df0be1013419f_EOF + GH_AW_CODEX_SHELL_POLICY_ccbf946e47882948_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1480,7 +1480,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Duplicate Code Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/duplicate-code-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 57786792457..a241da13179 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -94,15 +94,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Example: Properly Provisioned Permissions" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-permissions-warning.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Example: Properly Provisioned Permissions" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -344,7 +344,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Example: Properly Provisioned Permissions" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-permissions-warning.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -391,7 +391,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -852,7 +852,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Example: Properly Provisioned Permissions" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-permissions-warning.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -916,7 +916,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "example-permissions-warning" GH_AW_WORKFLOW_NAME: "Example: Properly Provisioned Permissions" outputs: @@ -946,7 +946,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Example: Properly Provisioned Permissions" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-permissions-warning.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index 350fff73e96..5b1838ef197 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -119,7 +119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Workflow Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-workflow-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -128,8 +128,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Weekly Workflow Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Workflow Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-workflow-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -460,7 +460,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1103,7 +1103,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Workflow Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-workflow-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1242,7 +1242,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Workflow Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-workflow-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1329,7 +1329,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1460,7 +1460,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Workflow Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/example-workflow-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 34a32358a96..7283990f3f6 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -113,15 +113,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "The Great Escapi" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -394,7 +394,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -466,7 +466,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1025,7 +1025,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1178,7 +1178,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1263,7 +1263,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1411,7 +1411,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1461,7 +1461,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1537,7 +1537,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "firewall-escape" GH_AW_WORKFLOW_ID: "firewall-escape" GH_AW_WORKFLOW_NAME: "The Great Escapi" @@ -1566,7 +1566,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1647,7 +1647,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "The Great Escapi" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall-escape.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 1035bcb30e4..5858ca71695 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -94,15 +94,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Firewall Test Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Firewall Test Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -346,7 +346,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Firewall Test Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -393,7 +393,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -854,7 +854,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Firewall Test Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -918,7 +918,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "firewall" GH_AW_WORKFLOW_NAME: "Firewall Test Agent" outputs: @@ -948,7 +948,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Firewall Test Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/firewall.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/functional-pragmatist.lock.yml b/.github/workflows/functional-pragmatist.lock.yml index f6aeade2dc7..29622a49d7b 100644 --- a/.github/workflows/functional-pragmatist.lock.yml +++ b/.github/workflows/functional-pragmatist.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Functional Pragmatist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/functional-pragmatist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Functional Pragmatist" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -358,7 +358,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Functional Pragmatist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/functional-pragmatist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -405,7 +405,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -956,7 +956,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Functional Pragmatist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/functional-pragmatist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1104,7 +1104,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Functional Pragmatist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/functional-pragmatist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1189,7 +1189,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1289,7 +1289,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "functional-pragmatist" GH_AW_WORKFLOW_ID: "functional-pragmatist" GH_AW_WORKFLOW_NAME: "Functional Pragmatist" @@ -1320,7 +1320,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Functional Pragmatist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/functional-pragmatist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index c709eb0e6cf..e7dec2136c5 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -383,7 +383,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -473,7 +473,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1117,7 +1117,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1257,7 +1257,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1344,7 +1344,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1475,7 +1475,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1558,7 +1558,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1612,7 +1612,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Structural Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-structural-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 690c581196a..1322d3e9fb6 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-tools-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -380,7 +380,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-tools-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -451,7 +451,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1110,7 +1110,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-tools-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1252,7 +1252,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-tools-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1339,7 +1339,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1473,7 +1473,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-tools-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1617,7 +1617,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub MCP Remote Server Tools Report Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-mcp-tools-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/github-remote-mcp-auth-test.lock.yml b/.github/workflows/github-remote-mcp-auth-test.lock.yml index df066f555a0..c22ee8eef90 100644 --- a/.github/workflows/github-remote-mcp-auth-test.lock.yml +++ b/.github/workflows/github-remote-mcp-auth-test.lock.yml @@ -113,7 +113,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-remote-mcp-auth-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -122,8 +122,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: "gpt-4.1" - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -373,7 +373,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-remote-mcp-auth-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -422,7 +422,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -984,7 +984,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-remote-mcp-auth-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1127,7 +1127,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-remote-mcp-auth-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1212,7 +1212,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1312,7 +1312,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: "gpt-4.1" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "github-remote-mcp-auth-test" GH_AW_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" outputs: @@ -1340,7 +1340,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GitHub Remote MCP Authentication Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/github-remote-mcp-auth-test.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 9a76fa1a745..43120ade6d4 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -110,15 +110,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -421,7 +421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -508,7 +508,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1110,7 +1110,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1258,7 +1258,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1343,7 +1343,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1460,7 +1460,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1537,7 +1537,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "glossary-maintainer" GH_AW_WORKFLOW_NAME: "Glossary Maintainer" outputs: @@ -1567,7 +1567,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1709,7 +1709,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Glossary Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/glossary-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 22481f1184f..9e0730067df 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -121,7 +121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -130,8 +130,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Go Fan" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -415,7 +415,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -486,7 +486,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1156,7 +1156,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1301,7 +1301,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1388,7 +1388,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1520,7 +1520,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1603,7 +1603,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 4443355c384..766bf1be9e3 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-logger.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -364,7 +364,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-logger.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -449,7 +449,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1245,7 +1245,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-logger.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1385,7 +1385,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-logger.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1472,7 +1472,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1605,7 +1605,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-logger.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1747,7 +1747,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Logger Enhancement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-logger.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index b8af607e5a6..ad4b949159b 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -104,15 +104,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Pattern Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-pattern-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Go Pattern Detector" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -361,7 +361,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Pattern Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-pattern-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -415,7 +415,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1063,7 +1063,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Pattern Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-pattern-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1200,7 +1200,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Pattern Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-pattern-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1287,7 +1287,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1419,7 +1419,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Go Pattern Detector" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-pattern-detector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index ae8843739cf..f3bb19fd36c 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -104,15 +104,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/gpclean.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -362,7 +362,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/gpclean.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -430,7 +430,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -984,7 +984,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/gpclean.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1126,7 +1126,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/gpclean.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1211,7 +1211,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1310,7 +1310,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "gpclean" GH_AW_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" outputs: @@ -1340,7 +1340,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/gpclean.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1421,7 +1421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "GPL Dependency Cleaner (gpclean)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/gpclean.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 4f7d3a26d5f..ede4d6b7c48 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -114,15 +114,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -420,7 +420,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -487,7 +487,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Parse integrity filter lists @@ -1100,7 +1100,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1260,7 +1260,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1343,7 +1343,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1374,18 +1374,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_3fc8b965151290d0_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_3bdff7486c007560_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_3fc8b965151290d0_EOF + GH_AW_MCP_CONFIG_3bdff7486c007560_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ed5701184089b353_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_386ba95ce3e385ce_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1396,11 +1396,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_ed5701184089b353_EOF + GH_AW_MCP_CONFIG_386ba95ce3e385ce_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_3745adad19bfe02d_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_c6d922b83aadab26_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1410,7 +1410,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_3745adad19bfe02d_EOF + GH_AW_CODEX_SHELL_POLICY_c6d922b83aadab26_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1514,7 +1514,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1585,7 +1585,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1666,7 +1666,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Grumpy Code Reviewer 🔥" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/grumpy-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/hippo-embed.lock.yml b/.github/workflows/hippo-embed.lock.yml index 4e37a2bc95a..d48c3a635a5 100644 --- a/.github/workflows/hippo-embed.lock.yml +++ b/.github/workflows/hippo-embed.lock.yml @@ -98,15 +98,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Hippo Embed" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hippo-embed.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Hippo Embed" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -351,7 +351,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Hippo Embed" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hippo-embed.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -426,7 +426,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1013,7 +1013,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Hippo Embed" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hippo-embed.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1078,7 +1078,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "hippo-embed" GH_AW_WORKFLOW_ID: "hippo-embed" GH_AW_WORKFLOW_NAME: "Hippo Embed" @@ -1109,7 +1109,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Hippo Embed" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hippo-embed.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 4f2b1598d9f..d320c091db3 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -104,15 +104,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Cleaner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hourly-ci-cleaner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "CI Cleaner" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -368,7 +368,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Cleaner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hourly-ci-cleaner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -455,7 +455,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1106,7 +1106,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Cleaner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hourly-ci-cleaner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1251,7 +1251,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Cleaner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hourly-ci-cleaner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1338,7 +1338,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1472,7 +1472,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "CI Cleaner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/hourly-ci-cleaner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index a783d689792..c9ca71759c7 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Instructions Janitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/instructions-janitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Instructions Janitor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -358,7 +358,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Instructions Janitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/instructions-janitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -427,7 +427,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1064,7 +1064,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Instructions Janitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/instructions-janitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1204,7 +1204,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Instructions Janitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/instructions-janitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1291,7 +1291,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1424,7 +1424,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Instructions Janitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/instructions-janitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1566,7 +1566,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Instructions Janitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/instructions-janitor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 40700aec96f..8a6ba2e259e 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Arborist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-arborist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Issue Arborist" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -393,7 +393,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Arborist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-arborist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -512,7 +512,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Parse integrity filter lists @@ -1127,7 +1127,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Arborist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-arborist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1266,7 +1266,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Arborist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-arborist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1355,7 +1355,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1386,18 +1386,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_f28709a2865b9e15_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_674a878025566fc9_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_f28709a2865b9e15_EOF + GH_AW_MCP_CONFIG_674a878025566fc9_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_7c46e6b269ca6707_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_9e5f38cce10c70fd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1408,11 +1408,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_7c46e6b269ca6707_EOF + GH_AW_MCP_CONFIG_9e5f38cce10c70fd_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_abe261b8e02662a4_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_085777e59741e8b5_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1422,7 +1422,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_abe261b8e02662a4_EOF + GH_AW_CODEX_SHELL_POLICY_085777e59741e8b5_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1524,7 +1524,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Arborist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-arborist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1623,7 +1623,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Arborist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-arborist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index d6134806936..2dbd8c2ffa4 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -485,15 +485,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Monster" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-monster.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: "claude-haiku-4.5" - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Issue Monster" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -753,7 +753,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Monster" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-monster.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -800,7 +800,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1353,7 +1353,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Monster" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-monster.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1497,7 +1497,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Monster" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-monster.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1582,7 +1582,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1696,7 +1696,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Monster" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-monster.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -2130,7 +2130,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: "claude-haiku-4.5" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🍪 *Om nom nom by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🍪 ISSUE! ISSUE! [{workflow_name}]({run_url}) hungry for issues on this {event_type}! Om nom nom...\",\"runSuccess\":\"🍪 YUMMY! [{workflow_name}]({run_url}) ate the issues! That was DELICIOUS! Me want MORE! 😋\",\"runFailure\":\"🍪 Aww... [{workflow_name}]({run_url}) {status}. No cookie for monster today... 😢\"}" GH_AW_WORKFLOW_ID: "issue-monster" GH_AW_WORKFLOW_NAME: "Issue Monster" @@ -2164,7 +2164,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Monster" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-monster.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index 417d4a9dbe5..f7c6d17e9f4 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -101,15 +101,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Issue Triage Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -352,7 +352,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -385,7 +385,7 @@ jobs: git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git" echo "Git configured with standard GitHub Actions identity" - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -933,7 +933,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1073,7 +1073,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1158,7 +1158,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1259,7 +1259,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "issue-triage-agent" GH_AW_WORKFLOW_NAME: "Issue Triage Agent" outputs: @@ -1289,7 +1289,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index d2ed7967052..9ea65ee146a 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/jsweep.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -363,7 +363,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/jsweep.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -434,7 +434,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -991,7 +991,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/jsweep.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1140,7 +1140,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/jsweep.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1225,7 +1225,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1325,7 +1325,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "jsweep-daily" GH_AW_WORKFLOW_ID: "jsweep" GH_AW_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" @@ -1356,7 +1356,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/jsweep.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1498,7 +1498,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "jsweep - JavaScript Unbloater" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/jsweep.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 96b694cf11c..69e8efcf0aa 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -103,15 +103,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Layout Specification Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/layout-spec-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Layout Specification Maintainer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -356,7 +356,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Layout Specification Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/layout-spec-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -410,7 +410,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -983,7 +983,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Layout Specification Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/layout-spec-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1131,7 +1131,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Layout Specification Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/layout-spec-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1216,7 +1216,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1316,7 +1316,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "layout-spec-maintainer" GH_AW_WORKFLOW_ID: "layout-spec-maintainer" GH_AW_WORKFLOW_NAME: "Layout Specification Maintainer" @@ -1347,7 +1347,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Layout Specification Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/layout-spec-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 6897e1fbb06..55c52c22cd1 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -116,7 +116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lockfile-stats.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -125,8 +125,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lockfile-stats.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -445,7 +445,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1061,7 +1061,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lockfile-stats.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1201,7 +1201,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lockfile-stats.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1288,7 +1288,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1419,7 +1419,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lockfile-stats.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1502,7 +1502,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Lockfile Statistics Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/lockfile-stats.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/mattpocock-skills-reviewer.lock.yml b/.github/workflows/mattpocock-skills-reviewer.lock.yml index ab0d0645f87..f615ab3c2da 100644 --- a/.github/workflows/mattpocock-skills-reviewer.lock.yml +++ b/.github/workflows/mattpocock-skills-reviewer.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -382,7 +382,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -444,7 +444,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1054,7 +1054,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1197,7 +1197,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1282,7 +1282,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1389,7 +1389,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1423,7 +1423,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🧠 *Reviewed using Matt Pocock's skills by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🧠 [{workflow_name}]({run_url}) is reviewing this {event_type} using Matt Pocock's engineering skills...\",\"runSuccess\":\"🧠 [{workflow_name}]({run_url}) has completed the skills-based review. ✅\",\"runFailure\":\"🧠 [{workflow_name}]({run_url}) {status} during the skills-based review.\"}" GH_AW_WORKFLOW_ID: "mattpocock-skills-reviewer" GH_AW_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" @@ -1454,7 +1454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1535,7 +1535,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Matt Pocock Skills Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mattpocock-skills-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index d501362f4fd..45aca777372 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -159,7 +159,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mcp-inspector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -168,8 +168,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -469,7 +469,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mcp-inspector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -574,7 +574,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1550,7 +1550,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mcp-inspector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1694,7 +1694,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mcp-inspector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1779,7 +1779,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -2155,7 +2155,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "mcp-inspector" GH_AW_WORKFLOW_NAME: "MCP Inspector Agent" outputs: @@ -2183,7 +2183,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mcp-inspector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -2267,7 +2267,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "MCP Inspector Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mcp-inspector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index 5210cef7366..00d8a15ec27 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -104,15 +104,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Mergefest" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mergefest.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Mergefest" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -407,7 +407,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Mergefest" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mergefest.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -457,7 +457,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1019,7 +1019,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Mergefest" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mergefest.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1182,7 +1182,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Mergefest" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mergefest.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1267,7 +1267,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1374,7 +1374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Mergefest" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mergefest.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1417,7 +1417,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "mergefest" GH_AW_WORKFLOW_NAME: "Mergefest" outputs: @@ -1447,7 +1447,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Mergefest" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/mergefest.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index 5c685fd7f24..78c08f98f15 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/metrics-collector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -380,7 +380,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/metrics-collector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -467,7 +467,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1067,7 +1067,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/metrics-collector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1212,7 +1212,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/metrics-collector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1297,7 +1297,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1414,7 +1414,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/metrics-collector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1490,7 +1490,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "metrics-collector" GH_AW_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" outputs: @@ -1520,7 +1520,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Metrics Collector - Infrastructure Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/metrics-collector.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 084f0843468..f20897d54cd 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Summary to Notion" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/notion-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Issue Summary to Notion" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -357,7 +357,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Summary to Notion" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/notion-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -404,7 +404,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -950,7 +950,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Summary to Notion" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/notion-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1091,7 +1091,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Summary to Notion" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/notion-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1176,7 +1176,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1404,7 +1404,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "notion-issue-summary" GH_AW_WORKFLOW_NAME: "Issue Summary to Notion" outputs: @@ -1432,7 +1432,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Issue Summary to Notion" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/notion-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index d377a8d169d..94bb1f9397d 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Organization Health Report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -373,7 +373,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -456,7 +456,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1036,7 +1036,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1180,7 +1180,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1265,7 +1265,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1365,7 +1365,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "org-health-report" GH_AW_WORKFLOW_NAME: "Organization Health Report" outputs: @@ -1398,7 +1398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1485,7 +1485,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1539,7 +1539,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Organization Health Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/org-health-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1593,7 +1593,7 @@ jobs: GH_AW_ASSETS_ALLOWED_EXTS: ".png,.jpg,.jpeg,.svg" GH_AW_WORKFLOW_NAME: "Organization Health Report" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 52b89965d50..3b59ebda966 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -131,15 +131,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -454,7 +454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -516,7 +516,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1103,7 +1103,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1269,7 +1269,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1354,7 +1354,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1461,7 +1461,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1506,7 +1506,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📄 *Summary compiled by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"📖 Page by page! [{workflow_name}]({run_url}) is reading through this {event_type}...\",\"runSuccess\":\"📚 TL;DR ready! [{workflow_name}]({run_url}) has distilled the essence. Knowledge condensed! ✨\",\"runFailure\":\"📖 Reading interrupted! [{workflow_name}]({run_url}) {status}. The document remains unsummarized...\"}" GH_AW_WORKFLOW_ID: "pdf-summary" GH_AW_WORKFLOW_NAME: "Resource Summarizer Agent" @@ -1537,7 +1537,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1618,7 +1618,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Resource Summarizer Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pdf-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 60f9086fe64..f32f56743d9 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Plan Command" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/plan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Plan Command" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -409,7 +409,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Plan Command" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/plan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -456,7 +456,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1021,7 +1021,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Plan Command" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/plan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1182,7 +1182,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Plan Command" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/plan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1267,7 +1267,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1374,7 +1374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Plan Command" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/plan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1418,7 +1418,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "plan" GH_AW_WORKFLOW_NAME: "Plan Command" outputs: @@ -1448,7 +1448,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Plan Command" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/plan.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 3409f15a4a5..55584907cb4 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -124,15 +124,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: "gpt-5" - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -444,7 +444,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -506,7 +506,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1369,7 +1369,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1538,7 +1538,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1623,7 +1623,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1730,7 +1730,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1771,7 +1771,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: "gpt-5" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUTS_STAGED: "true" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🪶 *Verses penned by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🎭 Hear ye! The muse stirs! [{workflow_name}]({run_url}) takes quill in hand for this {event_type}...\",\"runSuccess\":\"🪶 The poem is writ! [{workflow_name}]({run_url}) has composed verses most fair. Applause! 👏\",\"runFailure\":\"🎭 Alas! [{workflow_name}]({run_url}) {status}. The muse has fled, leaving verses unsung...\"}" GH_AW_WORKFLOW_ID: "poem-bot" @@ -1814,7 +1814,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1894,7 +1894,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Poem Bot - A Creative Agentic Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/poem-bot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/pr-code-quality-reviewer.lock.yml b/.github/workflows/pr-code-quality-reviewer.lock.yml index 2fa2c3a4d9a..445ae6c1577 100644 --- a/.github/workflows/pr-code-quality-reviewer.lock.yml +++ b/.github/workflows/pr-code-quality-reviewer.lock.yml @@ -117,15 +117,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -427,7 +427,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -489,7 +489,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1068,7 +1068,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1232,7 +1232,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1317,7 +1317,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1424,7 +1424,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1467,7 +1467,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔎 *Code quality review by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔎 [{workflow_name}]({run_url}) is reviewing code quality for this {event_type}...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) completed the code quality review.\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status} during code quality review.\"}" GH_AW_WORKFLOW_ID: "pr-code-quality-reviewer" GH_AW_WORKFLOW_NAME: "PR Code Quality Reviewer" @@ -1496,7 +1496,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1577,7 +1577,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Code Quality Reviewer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-code-quality-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index 56abcb2d702..b9ee325fbae 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -114,15 +114,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -426,7 +426,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -488,7 +488,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1096,7 +1096,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1262,7 +1262,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1347,7 +1347,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1454,7 +1454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1499,7 +1499,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔍 *Meticulously inspected by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔬 Adjusting monocle... [{workflow_name}]({run_url}) is scrutinizing every pixel of this {event_type}...\",\"runSuccess\":\"🔍 Nitpicks catalogued! [{workflow_name}]({run_url}) has documented all the tiny details. Perfection awaits! ✅\",\"runFailure\":\"🔬 Lens cracked! [{workflow_name}]({run_url}) {status}. Some nitpicks remain undetected...\"}" GH_AW_WORKFLOW_ID: "pr-nitpick-reviewer" GH_AW_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" @@ -1528,7 +1528,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1609,7 +1609,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Nitpick Reviewer 🔍" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-nitpick-reviewer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml index 0083a8666da..1f3e7f0bf63 100644 --- a/.github/workflows/pr-triage-agent.lock.yml +++ b/.github/workflows/pr-triage-agent.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "PR Triage Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -381,7 +381,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -453,7 +453,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1119,7 +1119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1266,7 +1266,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1351,7 +1351,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1468,7 +1468,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1546,7 +1546,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"runStarted\":\"🔍 Starting PR triage analysis... [{workflow_name}]({run_url}) is categorizing and prioritizing agent-created PRs\",\"runSuccess\":\"✅ PR triage complete! [{workflow_name}]({run_url}) has analyzed and categorized PRs. Check the issue for detailed report.\",\"runFailure\":\"❌ PR triage failed! [{workflow_name}]({run_url}) {status}. Some PRs may not be triaged.\"}" GH_AW_WORKFLOW_ID: "pr-triage-agent" GH_AW_WORKFLOW_NAME: "PR Triage Agent" @@ -1579,7 +1579,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1660,7 +1660,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "PR Triage Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/pr-triage-agent.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index edcf089d622..35d0836551b 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -130,7 +130,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -139,8 +139,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -398,7 +398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -545,7 +545,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1232,7 +1232,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1372,7 +1372,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1459,7 +1459,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1590,7 +1590,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1673,7 +1673,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1727,7 +1727,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/prompt-clustering-analysis.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index e3d07ed8c82..902d5b37d21 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -371,7 +371,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -482,7 +482,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1116,7 +1116,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1260,7 +1260,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1345,7 +1345,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1445,7 +1445,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "python-data-charts" GH_AW_WORKFLOW_NAME: "Python Data Visualization Generator" outputs: @@ -1478,7 +1478,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1565,7 +1565,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1619,7 +1619,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/python-data-charts.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1673,7 +1673,7 @@ jobs: GH_AW_ASSETS_ALLOWED_EXTS: ".png,.jpg,.jpeg,.svg" GH_AW_WORKFLOW_NAME: "Python Data Visualization Generator" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 1f62b9ca2fb..3f28d7daede 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -139,15 +139,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Q" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/q.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Q" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -486,7 +486,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Q" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/q.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -563,7 +563,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1229,7 +1229,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Q" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/q.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1394,7 +1394,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Q" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/q.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1479,7 +1479,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1586,7 +1586,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Q" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/q.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1631,7 +1631,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🎩 *Equipped by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔧 Pay attention, 007! [{workflow_name}]({run_url}) is preparing your gadgets for this {event_type}...\",\"runSuccess\":\"🎩 Mission equipment ready! [{workflow_name}]({run_url}) has optimized your workflow. Use wisely, 007! 🔫\",\"runFailure\":\"🔧 Technical difficulties! [{workflow_name}]({run_url}) {status}. Even Q Branch has bad days...\"}" GH_AW_WORKFLOW_ID: "q" GH_AW_WORKFLOW_NAME: "Q" @@ -1664,7 +1664,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Q" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/q.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/refactoring-cadence.lock.yml b/.github/workflows/refactoring-cadence.lock.yml index 43f066df2ad..84205b732e7 100644 --- a/.github/workflows/refactoring-cadence.lock.yml +++ b/.github/workflows/refactoring-cadence.lock.yml @@ -109,15 +109,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -367,7 +367,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -429,7 +429,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -977,7 +977,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1125,7 +1125,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1210,7 +1210,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1317,7 +1317,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1362,7 +1362,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔧 *Code health check by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔧 Refactoring Cadence online! [{workflow_name}]({run_url}) is measuring code health...\",\"runSuccess\":\"✅ Code health check complete! [{workflow_name}]({run_url}) has finished its analysis.\",\"runFailure\":\"🔧 Code health check failed! [{workflow_name}]({run_url}) {status}. Code health status unknown...\"}" GH_AW_TRACKER_ID: "refactoring-cadence" GH_AW_WORKFLOW_ID: "refactoring-cadence" @@ -1394,7 +1394,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1475,7 +1475,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Refactoring Cadence" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refactoring-cadence.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/refiner.lock.yml b/.github/workflows/refiner.lock.yml index 15ddde1ac43..2655b60f7ca 100644 --- a/.github/workflows/refiner.lock.yml +++ b/.github/workflows/refiner.lock.yml @@ -123,15 +123,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Code Refiner" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -403,7 +403,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -465,7 +465,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1103,7 +1103,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1248,7 +1248,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1333,7 +1333,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1442,7 +1442,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1476,7 +1476,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"runStarted\":\"🔍 Starting code refinement... [{workflow_name}]({run_url}) is analyzing PR #${{ github.event.pull_request.number }} for style alignment and security issues\",\"runSuccess\":\"✅ Refinement complete! [{workflow_name}]({run_url}) has created a PR with improvements for PR #${{ github.event.pull_request.number }}\",\"runFailure\":\"❌ Refinement failed! [{workflow_name}]({run_url}) {status} while processing PR #${{ github.event.pull_request.number }}\"}" GH_AW_WORKFLOW_ID: "refiner" GH_AW_WORKFLOW_NAME: "Code Refiner" @@ -1509,7 +1509,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1651,7 +1651,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Code Refiner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/refiner.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 733aa9172bd..1eacf2d7f10 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -119,15 +119,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Release" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/release.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Release" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Release" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/release.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -433,7 +433,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -993,7 +993,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Release" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/release.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1229,7 +1229,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Release" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/release.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1474,7 +1474,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "release" GH_AW_WORKFLOW_NAME: "Release" outputs: @@ -1502,7 +1502,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Release" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/release.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/repo-audit-analyzer.lock.yml b/.github/workflows/repo-audit-analyzer.lock.yml index e0f1f82c353..eee9c2e0612 100644 --- a/.github/workflows/repo-audit-analyzer.lock.yml +++ b/.github/workflows/repo-audit-analyzer.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-audit-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -382,7 +382,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-audit-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -447,7 +447,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1012,7 +1012,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-audit-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1158,7 +1158,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-audit-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1243,7 +1243,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1343,7 +1343,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "repo-audit-analyzer" GH_AW_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" outputs: @@ -1371,7 +1371,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-audit-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1454,7 +1454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Audit & Agentic Workflow Opportunity Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-audit-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (repo-audits) id: download_cache_repo_audits uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index aebd899122d..3e017829db3 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Tree Map Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-tree-map.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Repository Tree Map Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -353,7 +353,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Tree Map Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-tree-map.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -400,7 +400,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -936,7 +936,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Tree Map Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-tree-map.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1079,7 +1079,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Tree Map Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-tree-map.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1164,7 +1164,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1264,7 +1264,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "repo-tree-map" GH_AW_WORKFLOW_NAME: "Repository Tree Map Generator" outputs: @@ -1292,7 +1292,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Tree Map Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repo-tree-map.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index fd40154b635..f9be8797064 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -123,7 +123,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repository-quality-improver.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -132,8 +132,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -387,7 +387,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repository-quality-improver.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -455,7 +455,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1014,7 +1014,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repository-quality-improver.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1158,7 +1158,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repository-quality-improver.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1243,7 +1243,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1343,7 +1343,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "repository-quality-improver" GH_AW_WORKFLOW_NAME: "Repository Quality Improvement Agent" outputs: @@ -1371,7 +1371,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repository-quality-improver.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1454,7 +1454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Repository Quality Improvement Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/repository-quality-improver.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (focus-areas) id: download_cache_focus_areas uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index 466e033e02e..61a8b669ed8 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Basic Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Basic Research Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -361,7 +361,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Basic Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -408,7 +408,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -967,7 +967,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Basic Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1110,7 +1110,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Basic Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1195,7 +1195,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1295,7 +1295,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "research" GH_AW_WORKFLOW_NAME: "Basic Research Agent" outputs: @@ -1323,7 +1323,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Basic Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/research.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 163f2aeb90a..598dc1ba69f 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -121,7 +121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/safe-output-health.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -130,8 +130,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -383,7 +383,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/safe-output-health.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -491,7 +491,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1176,7 +1176,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/safe-output-health.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1316,7 +1316,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/safe-output-health.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1403,7 +1403,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1534,7 +1534,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/safe-output-health.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1617,7 +1617,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Safe Output Health Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/safe-output-health.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 5f071f24109..1a35455e951 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -117,7 +117,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -126,8 +126,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -378,7 +378,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -450,7 +450,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1063,7 +1063,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1203,7 +1203,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1290,7 +1290,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1421,7 +1421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1504,7 +1504,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-consistency-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/schema-feature-coverage.lock.yml b/.github/workflows/schema-feature-coverage.lock.yml index 2235601f614..5d011f2773c 100644 --- a/.github/workflows/schema-feature-coverage.lock.yml +++ b/.github/workflows/schema-feature-coverage.lock.yml @@ -99,15 +99,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Feature Coverage Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-feature-coverage.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Schema Feature Coverage Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -355,7 +355,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Feature Coverage Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-feature-coverage.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -408,7 +408,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -992,7 +992,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Feature Coverage Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-feature-coverage.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1131,7 +1131,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Feature Coverage Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-feature-coverage.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1214,7 +1214,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1245,18 +1245,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_e04887ff6399ee76_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_e9cf4c5f72f7c474_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_e04887ff6399ee76_EOF + GH_AW_MCP_CONFIG_e9cf4c5f72f7c474_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_3dce01a2bfe90779_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_65d70d3b37faadcc_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1267,11 +1267,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_3dce01a2bfe90779_EOF + GH_AW_MCP_CONFIG_65d70d3b37faadcc_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_2ff5e4ac06d11000_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_041201ba30bbb864_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1281,7 +1281,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_2ff5e4ac06d11000_EOF + GH_AW_CODEX_SHELL_POLICY_041201ba30bbb864_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1407,7 +1407,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Schema Feature Coverage Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/schema-feature-coverage.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index f6e41652693..f302015c24f 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -162,15 +162,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Scout" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -485,7 +485,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -557,7 +557,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1283,7 +1283,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1443,7 +1443,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1530,7 +1530,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1641,7 +1641,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1716,7 +1716,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1797,7 +1797,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Scout" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/scout.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index 7b2695460fa..0fccf20b16b 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-compliance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -381,7 +381,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-compliance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -438,7 +438,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -990,7 +990,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-compliance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1135,7 +1135,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-compliance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1220,7 +1220,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1337,7 +1337,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-compliance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1413,7 +1413,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "security-compliance" GH_AW_WORKFLOW_NAME: "Security Compliance Campaign" outputs: @@ -1443,7 +1443,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Compliance Campaign" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-compliance.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/security-review.lock.yml b/.github/workflows/security-review.lock.yml index 3bcb91b4a0b..b56d2e03996 100644 --- a/.github/workflows/security-review.lock.yml +++ b/.github/workflows/security-review.lock.yml @@ -115,15 +115,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -426,7 +426,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -518,7 +518,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1145,7 +1145,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1309,7 +1309,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1394,7 +1394,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1502,7 +1502,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1545,7 +1545,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔒 *Security review by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔍 [{workflow_name}]({run_url}) is analyzing this {event_type} for security implications...\",\"runSuccess\":\"🔒 [{workflow_name}]({run_url}) completed the security review.\",\"runFailure\":\"⚠️ [{workflow_name}]({run_url}) {status} during security review.\"}" GH_AW_WORKFLOW_ID: "security-review" GH_AW_WORKFLOW_NAME: "Security Review Agent 🔒" @@ -1574,7 +1574,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1655,7 +1655,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Security Review Agent 🔒" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/security-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index b2f7b16a9e0..50a80d86d47 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -107,15 +107,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Semantic Function Refactoring" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/semantic-function-refactor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Semantic Function Refactoring" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -389,7 +389,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Semantic Function Refactoring" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/semantic-function-refactor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -443,7 +443,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1094,7 +1094,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Semantic Function Refactoring" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/semantic-function-refactor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1231,7 +1231,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Semantic Function Refactoring" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/semantic-function-refactor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1318,7 +1318,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1450,7 +1450,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Semantic Function Refactoring" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/semantic-function-refactor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index 8a413fa58b2..a348dd6907d 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sergo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -418,7 +418,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sergo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -484,7 +484,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1175,7 +1175,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sergo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1323,7 +1323,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sergo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1410,7 +1410,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1531,7 +1531,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sergo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1638,7 +1638,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sergo - Serena Go Expert" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sergo.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index 5e701d8c590..3f13d40743c 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -115,15 +115,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -390,7 +390,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -463,7 +463,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1072,7 +1072,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1221,7 +1221,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1306,7 +1306,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1412,7 +1412,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1458,7 +1458,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "slide-deck-maintainer" GH_AW_WORKFLOW_ID: "slide-deck-maintainer" GH_AW_WORKFLOW_NAME: "Slide Deck Maintainer" @@ -1489,7 +1489,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1631,7 +1631,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Slide Deck Maintainer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/slide-deck-maintainer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/smoke-agent-all-merged.lock.yml b/.github/workflows/smoke-agent-all-merged.lock.yml index 93853fc1372..17cae1f3a61 100644 --- a/.github/workflows/smoke-agent-all-merged.lock.yml +++ b/.github/workflows/smoke-agent-all-merged.lock.yml @@ -123,7 +123,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-merged.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -132,8 +132,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -396,7 +396,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-merged.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -452,7 +452,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1047,7 +1047,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-merged.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1206,7 +1206,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-merged.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1293,7 +1293,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1406,7 +1406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-merged.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1470,7 +1470,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/merged" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-merged.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-agent-all-none.lock.yml b/.github/workflows/smoke-agent-all-none.lock.yml index 85520c4d7b5..4ac6b0c430e 100644 --- a/.github/workflows/smoke-agent-all-none.lock.yml +++ b/.github/workflows/smoke-agent-all-none.lock.yml @@ -123,7 +123,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -132,8 +132,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -396,7 +396,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -452,7 +452,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1047,7 +1047,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1206,7 +1206,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1293,7 +1293,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1406,7 +1406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1470,7 +1470,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: all/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-all-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-agent-public-approved.lock.yml b/.github/workflows/smoke-agent-public-approved.lock.yml index d72d98c2b5c..6eaeacbe593 100644 --- a/.github/workflows/smoke-agent-public-approved.lock.yml +++ b/.github/workflows/smoke-agent-public-approved.lock.yml @@ -125,7 +125,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -134,8 +134,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -399,7 +399,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -455,7 +455,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1079,7 +1079,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1241,7 +1241,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1328,7 +1328,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1441,7 +1441,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1508,7 +1508,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-agent-public-none.lock.yml b/.github/workflows/smoke-agent-public-none.lock.yml index c24660c2210..40ae1d361e1 100644 --- a/.github/workflows/smoke-agent-public-none.lock.yml +++ b/.github/workflows/smoke-agent-public-none.lock.yml @@ -123,7 +123,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -132,8 +132,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -396,7 +396,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -452,7 +452,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1047,7 +1047,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1206,7 +1206,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1293,7 +1293,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1406,7 +1406,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1470,7 +1470,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: public/none" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-public-none.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-agent-scoped-approved.lock.yml b/.github/workflows/smoke-agent-scoped-approved.lock.yml index 85731c79e9d..0c5c48370bd 100644 --- a/.github/workflows/smoke-agent-scoped-approved.lock.yml +++ b/.github/workflows/smoke-agent-scoped-approved.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-scoped-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -398,7 +398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-scoped-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -454,7 +454,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Parse integrity filter lists id: parse-guard-vars env: @@ -1054,7 +1054,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-scoped-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1213,7 +1213,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-scoped-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1300,7 +1300,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1413,7 +1413,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-scoped-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1477,7 +1477,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Agent: scoped/approved" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-agent-scoped-approved.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-call-workflow.lock.yml b/.github/workflows/smoke-call-workflow.lock.yml index ad987847ddb..7b63eb9ff8d 100644 --- a/.github/workflows/smoke-call-workflow.lock.yml +++ b/.github/workflows/smoke-call-workflow.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-call-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: "gpt-5.4-mini" - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -383,7 +383,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-call-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -437,7 +437,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Determine automatic lockdown mode for GitHub MCP Server @@ -1041,7 +1041,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-call-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1178,7 +1178,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-call-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1261,7 +1261,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1292,18 +1292,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_675b1823621541b1_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_9148891b09e0fd8f_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_675b1823621541b1_EOF + GH_AW_MCP_CONFIG_9148891b09e0fd8f_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_3e6c62743192dd56_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_dad82f1661d583fe_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1314,11 +1314,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_3e6c62743192dd56_EOF + GH_AW_MCP_CONFIG_dad82f1661d583fe_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_708aff8d28e4d08d_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_0f3f92df6fe38d3b_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1328,7 +1328,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_708aff8d28e4d08d_EOF + GH_AW_CODEX_SHELL_POLICY_0f3f92df6fe38d3b_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1434,7 +1434,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-call-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1493,7 +1493,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Call Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-call-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-ci.lock.yml b/.github/workflows/smoke-ci.lock.yml index 9dd22c7050f..e88635d534d 100644 --- a/.github/workflows/smoke-ci.lock.yml +++ b/.github/workflows/smoke-ci.lock.yml @@ -119,15 +119,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke CI" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-ci.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke CI" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -399,7 +399,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke CI" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-ci.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -1227,7 +1227,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke CI" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-ci.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1351,7 +1351,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke CI" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-ci.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1398,7 +1398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke CI" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-ci.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1504,7 +1504,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke CI" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-ci.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 7a11477a23e..1a747fdb068 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -134,15 +134,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Smoke Claude" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -831,7 +831,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -944,7 +944,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Install Playwright CLI run: npm install -g @playwright/cli@0.1.11 - name: Install Playwright CLI skills @@ -2540,7 +2540,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2703,7 +2703,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2790,7 +2790,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -2903,7 +2903,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -2974,7 +2974,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -3087,7 +3087,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Claude" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-claude.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 3da4b214a58..0af2aa09044 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -138,7 +138,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -147,8 +147,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "codex" GH_AW_INFO_ENGINE_NAME: "Codex" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CODEX || 'auto' }} - GH_AW_INFO_VERSION: "0.128.0" - GH_AW_INFO_AGENT_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" + GH_AW_INFO_AGENT_VERSION: "0.129.0" GH_AW_INFO_WORKFLOW_NAME: "Smoke Codex" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -483,7 +483,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Set runtime paths id: set-runtime-paths run: | @@ -560,7 +560,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Playwright CLI @@ -1521,7 +1521,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Report TruffleHog secret scan failure if: always() && needs.trufflehog_scan.result == 'failure' && needs.trufflehog_scan.outputs.secrets_found == 'true' uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1711,7 +1711,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1794,7 +1794,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install Codex CLI - run: npm install --ignore-scripts -g @openai/codex@0.128.0 + run: npm install --ignore-scripts -g @openai/codex@0.129.0 - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Download container images @@ -1825,18 +1825,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_e4b6b69fe916258d_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_61d3fa0129c5a16a_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_e4b6b69fe916258d_EOF + GH_AW_MCP_CONFIG_61d3fa0129c5a16a_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_593bf5b152e9051e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_db4017edd1dcde18_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1847,11 +1847,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_593bf5b152e9051e_EOF + GH_AW_MCP_CONFIG_db4017edd1dcde18_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_f03e2f71531e6eec_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_4d97817116a0a7b0_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1861,7 +1861,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_f03e2f71531e6eec_EOF + GH_AW_CODEX_SHELL_POLICY_4d97817116a0a7b0_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1967,7 +1967,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -2033,7 +2033,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -2274,7 +2274,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Codex" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-codex.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "0.128.0" + GH_AW_INFO_VERSION: "0.129.0" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index cf713aa380b..aac516be885 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -137,7 +137,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -146,8 +146,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -481,7 +481,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -582,7 +582,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1955,7 +1955,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2122,7 +2122,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2207,7 +2207,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -2316,7 +2316,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -2351,7 +2351,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📰 *BREAKING: Report filed by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"appendOnlyComments\":true,\"runStarted\":\"📰 BREAKING: [{workflow_name}]({run_url}) is now investigating this {event_type}. Sources say the story is developing...\",\"runSuccess\":\"📰 VERDICT: [{workflow_name}]({run_url}) has concluded. All systems operational. This is a developing story. 🎤\",\"runFailure\":\"📰 DEVELOPING STORY: [{workflow_name}]({run_url}) reports {status}. Our correspondents are investigating the incident...\"}" GH_AW_WORKFLOW_ID: "smoke-copilot-arm" GH_AW_WORKFLOW_NAME: "Smoke Copilot ARM64" @@ -2384,7 +2384,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -2506,7 +2506,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot ARM64" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot-arm.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 823f0eb9355..c249d975f19 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -128,15 +128,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Copilot" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -515,7 +515,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -614,7 +614,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -2054,7 +2054,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2221,7 +2221,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2312,7 +2312,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -2419,7 +2419,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -2457,7 +2457,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -2529,7 +2529,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📰 *BREAKING: Report filed by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"appendOnlyComments\":true,\"runStarted\":\"📰 BREAKING: [{workflow_name}]({run_url}) is now investigating this {event_type}. Sources say the story is developing...\",\"runSuccess\":\"📰 VERDICT: [{workflow_name}]({run_url}) has concluded. All systems operational. This is a developing story. 🎤\",\"runFailure\":\"📰 DEVELOPING STORY: [{workflow_name}]({run_url}) reports {status}. Our correspondents are investigating the incident...\"}" GH_AW_WORKFLOW_ID: "smoke-copilot" GH_AW_WORKFLOW_NAME: "Smoke Copilot" @@ -2565,7 +2565,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -2691,7 +2691,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 5a95bb19a4e..87cdc4ca02e 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -124,7 +124,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-create-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -133,8 +133,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -408,7 +408,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-create-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -463,7 +463,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1099,7 +1099,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-create-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1264,7 +1264,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-create-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1349,7 +1349,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1459,7 +1459,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-create-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1493,7 +1493,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔬 *Cross-repo smoke test by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔬 [{workflow_name}]({run_url}) is testing cross-repo PR creation in github/gh-aw-side-repo...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) successfully created a cross-repo PR in github/gh-aw-side-repo!\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) failed to create a cross-repo PR: {status}\"}" GH_AW_WORKFLOW_ID: "smoke-create-cross-repo-pr" GH_AW_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" @@ -1528,7 +1528,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Create Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-create-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-multi-pr.lock.yml b/.github/workflows/smoke-multi-pr.lock.yml index de622f54548..99fe5d912e9 100644 --- a/.github/workflows/smoke-multi-pr.lock.yml +++ b/.github/workflows/smoke-multi-pr.lock.yml @@ -126,7 +126,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-multi-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -135,8 +135,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -419,7 +419,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-multi-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -468,7 +468,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1086,7 +1086,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-multi-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1251,7 +1251,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-multi-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1336,7 +1336,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1445,7 +1445,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-multi-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1479,7 +1479,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🧪 *Multi PR smoke test by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"appendOnlyComments\":true,\"runStarted\":\"🧪 [{workflow_name}]({run_url}) is now testing multiple PR creation...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) successfully created multiple PRs.\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) failed to create multiple PRs. Check the logs.\"}" GH_AW_WORKFLOW_ID: "smoke-multi-pr" GH_AW_WORKFLOW_NAME: "Smoke Multi PR" @@ -1512,7 +1512,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Multi PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-multi-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index ee400c1ff94..408d814ca54 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -127,7 +127,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Project" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-project.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -136,8 +136,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Project" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -421,7 +421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Project" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-project.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -470,7 +470,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1221,7 +1221,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Project" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-project.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1386,7 +1386,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Project" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-project.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1471,7 +1471,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1580,7 +1580,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Project" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-project.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1614,7 +1614,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🧪 *Project smoke test report by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"appendOnlyComments\":true,\"runStarted\":\"🧪 [{workflow_name}]({run_url}) is now testing project operations...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) completed successfully. All project operations validated.\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) encountered failures. Check the logs for details.\"}" GH_AW_WORKFLOW_ID: "smoke-project" GH_AW_WORKFLOW_NAME: "Smoke Project" @@ -1649,7 +1649,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Project" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-project.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-service-ports.lock.yml b/.github/workflows/smoke-service-ports.lock.yml index 5d1cd98f967..b83c7d50953 100644 --- a/.github/workflows/smoke-service-ports.lock.yml +++ b/.github/workflows/smoke-service-ports.lock.yml @@ -112,7 +112,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-service-ports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -121,8 +121,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -383,7 +383,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-service-ports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -432,7 +432,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -980,7 +980,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-service-ports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1143,7 +1143,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-service-ports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1228,7 +1228,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1334,7 +1334,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-service-ports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1368,7 +1368,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔌 *Service ports validation by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔌 Starting service ports validation... [{workflow_name}]({run_url}) is testing Redis connectivity...\",\"runSuccess\":\"✅ Service ports validation passed! [{workflow_name}]({run_url}) confirms agent can reach Redis.\",\"runFailure\":\"❌ Service ports validation failed! [{workflow_name}]({run_url}) could not reach Redis: {status}\"}" GH_AW_WORKFLOW_ID: "smoke-service-ports" GH_AW_WORKFLOW_NAME: "Smoke Service Ports" @@ -1399,7 +1399,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Service Ports" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-service-ports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index eada708b183..b77be79cd22 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -125,7 +125,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-temporary-id.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -134,8 +134,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -415,7 +415,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-temporary-id.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -464,7 +464,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1067,7 +1067,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-temporary-id.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1230,7 +1230,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-temporary-id.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1315,7 +1315,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1424,7 +1424,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-temporary-id.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1458,7 +1458,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🧪 *Temporary ID smoke test by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"appendOnlyComments\":true,\"runStarted\":\"🧪 [{workflow_name}]({run_url}) is now testing temporary ID functionality...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) completed successfully. Temporary ID validation passed.\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) encountered failures. Check the logs for details.\"}" GH_AW_WORKFLOW_ID: "smoke-temporary-id" GH_AW_WORKFLOW_NAME: "Smoke Temporary ID" @@ -1491,7 +1491,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Temporary ID" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-temporary-id.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-test-tools.lock.yml b/.github/workflows/smoke-test-tools.lock.yml index 167e5fdf3fe..3d1943c257f 100644 --- a/.github/workflows/smoke-test-tools.lock.yml +++ b/.github/workflows/smoke-test-tools.lock.yml @@ -128,7 +128,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-test-tools.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -137,8 +137,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -405,7 +405,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-test-tools.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -479,7 +479,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1027,7 +1027,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-test-tools.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1190,7 +1190,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-test-tools.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1275,7 +1275,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1384,7 +1384,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-test-tools.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1418,7 +1418,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔧 *Tool validation by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔧 Starting tool validation... [{workflow_name}]({run_url}) is checking the agent container tools...\",\"runSuccess\":\"✅ All tools validated successfully! [{workflow_name}]({run_url}) confirms agent container is ready.\",\"runFailure\":\"❌ Tool validation failed! [{workflow_name}]({run_url}) detected missing tools: {status}\"}" GH_AW_WORKFLOW_ID: "smoke-test-tools" GH_AW_WORKFLOW_NAME: "Agent Container Smoke Test" @@ -1449,7 +1449,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Agent Container Smoke Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-test-tools.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index e1921705756..2874fc43237 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -126,7 +126,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -135,8 +135,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -417,7 +417,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -494,7 +494,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1120,7 +1120,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1286,7 +1286,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1371,7 +1371,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1481,7 +1481,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1515,7 +1515,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📜 *Cross-repo PR update smoke test by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"📜 [{workflow_name}]({run_url}) is adding the next Odyssey line to github/gh-aw-side-repo PR #1...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) successfully updated the cross-repo PR with a new Odyssey line!\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) failed to update the cross-repo PR: {status}\"}" GH_AW_WORKFLOW_ID: "smoke-update-cross-repo-pr" GH_AW_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" @@ -1550,7 +1550,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1696,7 +1696,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Update Cross-Repo PR" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-update-cross-repo-pr.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index 5c130687b03..1f7ea62eca3 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -134,7 +134,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call-with-inputs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Resolve host repo for activation checkout id: resolve-host-repo @@ -161,8 +161,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -421,7 +421,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call-with-inputs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Set runtime paths id: set-runtime-paths @@ -469,7 +469,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1028,7 +1028,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call-with-inputs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Download agent output artifact id: download-agent-output @@ -1170,7 +1170,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call-with-inputs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Download agent output artifact id: download-agent-output @@ -1256,7 +1256,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1362,7 +1362,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call-with-inputs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Check team membership for workflow id: check_membership @@ -1395,7 +1395,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "smoke-workflow-call-with-inputs" GH_AW_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" outputs: @@ -1425,7 +1425,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call with Inputs" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call-with-inputs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Download agent output artifact id: download-agent-output diff --git a/.github/workflows/smoke-workflow-call.lock.yml b/.github/workflows/smoke-workflow-call.lock.yml index 6c9269769a0..4f83a92b6db 100644 --- a/.github/workflows/smoke-workflow-call.lock.yml +++ b/.github/workflows/smoke-workflow-call.lock.yml @@ -154,7 +154,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" @@ -183,8 +183,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -441,7 +441,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Set runtime paths id: set-runtime-paths @@ -491,7 +491,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1060,7 +1060,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Download agent output artifact id: download-agent-output @@ -1203,7 +1203,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Download agent output artifact id: download-agent-output @@ -1289,7 +1289,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1395,7 +1395,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Check team membership for workflow id: check_membership @@ -1430,7 +1430,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔁 *workflow_call smoke test by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"appendOnlyComments\":true,\"runStarted\":\"🔁 [{workflow_name}]({run_url}) is validating workflow_call checkout...\",\"runSuccess\":\"✅ [{workflow_name}]({run_url}) successfully validated workflow_call checkout.\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) failed to validate workflow_call checkout. Check the logs.\"}" GH_AW_WORKFLOW_ID: "smoke-workflow-call" GH_AW_WORKFLOW_NAME: "Smoke Workflow Call" @@ -1461,7 +1461,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Workflow Call" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-workflow-call.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" GH_AW_SETUP_AW_CONTEXT: ${{ inputs.aw_context }} - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" diff --git a/.github/workflows/spec-enforcer.lock.yml b/.github/workflows/spec-enforcer.lock.yml index e8f24a4cb80..5f894ad7e96 100644 --- a/.github/workflows/spec-enforcer.lock.yml +++ b/.github/workflows/spec-enforcer.lock.yml @@ -111,15 +111,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-enforcer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -378,7 +378,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-enforcer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -447,7 +447,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1099,7 +1099,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-enforcer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1244,7 +1244,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-enforcer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1331,7 +1331,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1465,7 +1465,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-enforcer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1607,7 +1607,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Enforcer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-enforcer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/spec-extractor.lock.yml b/.github/workflows/spec-extractor.lock.yml index 86b9e19005b..1adf44b7d5a 100644 --- a/.github/workflows/spec-extractor.lock.yml +++ b/.github/workflows/spec-extractor.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -401,7 +401,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -463,7 +463,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1088,7 +1088,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1237,7 +1237,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1322,7 +1322,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1423,7 +1423,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "spec-extractor" GH_AW_WORKFLOW_ID: "spec-extractor" GH_AW_WORKFLOW_NAME: "Package Specification Extractor" @@ -1454,7 +1454,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1596,7 +1596,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/spec-librarian.lock.yml b/.github/workflows/spec-librarian.lock.yml index cdc16ea5977..100d3afb2a3 100644 --- a/.github/workflows/spec-librarian.lock.yml +++ b/.github/workflows/spec-librarian.lock.yml @@ -112,15 +112,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-librarian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -398,7 +398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-librarian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -445,7 +445,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1046,7 +1046,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-librarian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1195,7 +1195,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-librarian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1280,7 +1280,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1387,7 +1387,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-librarian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1432,7 +1432,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📚 *Specification review by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"📚 Specification Librarian online! [{workflow_name}]({run_url}) is reviewing all package specifications...\",\"runSuccess\":\"✅ Specification review complete! [{workflow_name}]({run_url}) has audited all package specs. Report delivered! 📋\",\"runFailure\":\"📚 Specification review failed! [{workflow_name}]({run_url}) {status}.\"}" GH_AW_TRACKER_ID: "spec-librarian" GH_AW_WORKFLOW_ID: "spec-librarian" @@ -1466,7 +1466,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Package Specification Librarian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/spec-librarian.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/stale-pr-cleanup.lock.yml b/.github/workflows/stale-pr-cleanup.lock.yml index c16b0c3275e..55416a9489d 100644 --- a/.github/workflows/stale-pr-cleanup.lock.yml +++ b/.github/workflows/stale-pr-cleanup.lock.yml @@ -97,15 +97,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Stale PR Cleanup" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -345,7 +345,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -392,7 +392,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -976,7 +976,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1118,7 +1118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1203,7 +1203,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1305,7 +1305,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"runStarted\":\"🧹 Starting stale PR cleanup... [{workflow_name}]({run_url}) is reviewing PRs open 30+ days\",\"runSuccess\":\"✅ Stale PR cleanup complete! [{workflow_name}]({run_url}) has triaged the 30+ day PR backlog.\",\"runFailure\":\"❌ Stale PR cleanup failed! [{workflow_name}]({run_url}) {status}. Some PRs may not be processed.\"}" GH_AW_WORKFLOW_ID: "stale-pr-cleanup" GH_AW_WORKFLOW_NAME: "Stale PR Cleanup" @@ -1336,7 +1336,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale PR Cleanup" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-pr-cleanup.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 768a00025f6..cc95315297b 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -130,7 +130,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -139,8 +139,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -403,7 +403,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -563,7 +563,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1219,7 +1219,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1364,7 +1364,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1449,7 +1449,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1546,7 +1546,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUTS_STAGED: "true" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔍 *Analysis by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔍 Stale Repository Identifier starting! [{workflow_name}]({run_url}) is analyzing repository activity...\",\"runSuccess\":\"✅ Analysis complete! [{workflow_name}]({run_url}) has finished analyzing stale repositories.\",\"runFailure\":\"⚠️ Analysis interrupted! [{workflow_name}]({run_url}) {status}.\"}" GH_AW_WORKFLOW_ID: "stale-repo-identifier" @@ -1587,7 +1587,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1668,7 +1668,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1722,7 +1722,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/stale-repo-identifier.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1776,7 +1776,7 @@ jobs: GH_AW_ASSETS_ALLOWED_EXTS: ".png,.jpg,.jpeg,.svg" GH_AW_WORKFLOW_NAME: "Stale Repository Identifier" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} GH_AW_SAFE_OUTPUTS_STAGED: "true" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🔍 *Analysis by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔍 Stale Repository Identifier starting! [{workflow_name}]({run_url}) is analyzing repository activity...\",\"runSuccess\":\"✅ Analysis complete! [{workflow_name}]({run_url}) has finished analyzing stale repositories.\",\"runFailure\":\"⚠️ Analysis interrupted! [{workflow_name}]({run_url}) {status}.\"}" diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 0238c6dee5d..ad0d8560453 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -109,15 +109,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Static Analysis Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/static-analysis-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Static Analysis Report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -374,7 +374,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Static Analysis Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/static-analysis-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -485,7 +485,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1134,7 +1134,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Static Analysis Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/static-analysis-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1272,7 +1272,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Static Analysis Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/static-analysis-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1359,7 +1359,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1491,7 +1491,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Static Analysis Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/static-analysis-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1572,7 +1572,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Static Analysis Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/static-analysis-report.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index 19d773c93bb..0bad3ad6a55 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -101,15 +101,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Step Name Alignment" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/step-name-alignment.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Step Name Alignment" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -354,7 +354,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Step Name Alignment" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/step-name-alignment.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -423,7 +423,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1044,7 +1044,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Step Name Alignment" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/step-name-alignment.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1182,7 +1182,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Step Name Alignment" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/step-name-alignment.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1269,7 +1269,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1401,7 +1401,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Step Name Alignment" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/step-name-alignment.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1482,7 +1482,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Step Name Alignment" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/step-name-alignment.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index cd0ef80e35a..67d4a35f4e3 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -99,15 +99,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sub-Issue Closer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sub-issue-closer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Sub-Issue Closer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -349,7 +349,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sub-Issue Closer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sub-issue-closer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -396,7 +396,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -978,7 +978,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sub-Issue Closer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sub-issue-closer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1119,7 +1119,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sub-Issue Closer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sub-issue-closer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1204,7 +1204,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1305,7 +1305,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "sub-issue-closer" GH_AW_WORKFLOW_NAME: "Sub-Issue Closer" outputs: @@ -1335,7 +1335,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Sub-Issue Closer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sub-issue-closer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 552788e54d0..f3eadb62209 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Super Linter Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/super-linter.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Super Linter Report" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -373,7 +373,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Super Linter Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/super-linter.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -441,7 +441,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -996,7 +996,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Super Linter Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/super-linter.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1138,7 +1138,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Super Linter Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/super-linter.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1223,7 +1223,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1322,7 +1322,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "super-linter" GH_AW_WORKFLOW_NAME: "Super Linter Report" outputs: @@ -1352,7 +1352,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Super Linter Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/super-linter.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1494,7 +1494,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Super Linter Report" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/super-linter.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 546698fc685..8dc54a49627 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -386,7 +386,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -485,7 +485,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1092,7 +1092,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1241,7 +1241,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1326,7 +1326,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1443,7 +1443,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1521,7 +1521,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 📝 *Documentation by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"✍️ The Technical Writer begins! [{workflow_name}]({run_url}) is documenting this {event_type}...\",\"runSuccess\":\"📝 Documentation complete! [{workflow_name}]({run_url}) has written the docs. Clear as crystal! ✨\",\"runFailure\":\"✍️ Writer's block! [{workflow_name}]({run_url}) {status}. The page remains blank...\"}" GH_AW_WORKFLOW_ID: "technical-doc-writer" GH_AW_WORKFLOW_NAME: "Rebuild the documentation after making changes" @@ -1557,7 +1557,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1705,7 +1705,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Rebuild the documentation after making changes" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/technical-doc-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/terminal-stylist.lock.yml b/.github/workflows/terminal-stylist.lock.yml index b3ef8430693..f58e932f6f9 100644 --- a/.github/workflows/terminal-stylist.lock.yml +++ b/.github/workflows/terminal-stylist.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Terminal Stylist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/terminal-stylist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Terminal Stylist" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -404,7 +404,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Terminal Stylist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/terminal-stylist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -453,7 +453,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1029,7 +1029,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Terminal Stylist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/terminal-stylist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1172,7 +1172,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Terminal Stylist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/terminal-stylist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1257,7 +1257,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1357,7 +1357,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "terminal-stylist" GH_AW_WORKFLOW_NAME: "Terminal Stylist" outputs: @@ -1385,7 +1385,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Terminal Stylist" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/terminal-stylist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/test-create-pr-error-handling.lock.yml b/.github/workflows/test-create-pr-error-handling.lock.yml index c6ef7607efc..cb287abbadc 100644 --- a/.github/workflows/test-create-pr-error-handling.lock.yml +++ b/.github/workflows/test-create-pr-error-handling.lock.yml @@ -98,15 +98,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-create-pr-error-handling.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -352,7 +352,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-create-pr-error-handling.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -421,7 +421,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1035,7 +1035,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-create-pr-error-handling.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1175,7 +1175,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-create-pr-error-handling.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1262,7 +1262,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1395,7 +1395,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-create-pr-error-handling.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1537,7 +1537,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Create PR Error Handling" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-create-pr-error-handling.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 diff --git a/.github/workflows/test-dispatcher.lock.yml b/.github/workflows/test-dispatcher.lock.yml index 521acdec0eb..6e187b3c690 100644 --- a/.github/workflows/test-dispatcher.lock.yml +++ b/.github/workflows/test-dispatcher.lock.yml @@ -94,15 +94,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Dispatcher Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-dispatcher.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Test Dispatcher Workflow" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -341,7 +341,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Dispatcher Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-dispatcher.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -388,7 +388,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -916,7 +916,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Dispatcher Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-dispatcher.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1057,7 +1057,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Dispatcher Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-dispatcher.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1142,7 +1142,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1240,7 +1240,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "test-dispatcher" GH_AW_WORKFLOW_NAME: "Test Dispatcher Workflow" outputs: @@ -1268,7 +1268,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Dispatcher Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-dispatcher.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/test-project-url-default.lock.yml b/.github/workflows/test-project-url-default.lock.yml index 4864284a24d..8a106e3630f 100644 --- a/.github/workflows/test-project-url-default.lock.yml +++ b/.github/workflows/test-project-url-default.lock.yml @@ -95,15 +95,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Project URL Explicit Requirement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-project-url-default.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Test Project URL Explicit Requirement" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -341,7 +341,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Project URL Explicit Requirement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-project-url-default.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -388,7 +388,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -980,7 +980,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Project URL Explicit Requirement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-project-url-default.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1121,7 +1121,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Project URL Explicit Requirement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-project-url-default.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1206,7 +1206,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1305,7 +1305,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "test-project-url-default" GH_AW_WORKFLOW_NAME: "Test Project URL Explicit Requirement" outputs: @@ -1333,7 +1333,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Project URL Explicit Requirement" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-project-url-default.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/test-quality-sentinel.lock.yml b/.github/workflows/test-quality-sentinel.lock.yml index 6fa64ddcbd7..f73417b5f65 100644 --- a/.github/workflows/test-quality-sentinel.lock.yml +++ b/.github/workflows/test-quality-sentinel.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-quality-sentinel.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -369,7 +369,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-quality-sentinel.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -450,7 +450,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1020,7 +1020,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-quality-sentinel.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1162,7 +1162,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-quality-sentinel.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1247,7 +1247,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1355,7 +1355,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-quality-sentinel.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1389,7 +1389,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_SAFE_OUTPUT_MESSAGES: "{\"footer\":\"\\u003e 🧪 *Test quality analysis by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}\",\"runStarted\":\"🔬 [{workflow_name}]({run_url}) is analyzing test quality on this {event_type}...\",\"runSuccess\":\"🧪 [{workflow_name}]({run_url}) completed test quality analysis.\",\"runFailure\":\"❌ [{workflow_name}]({run_url}) {status} during test quality analysis.\"}" GH_AW_WORKFLOW_ID: "test-quality-sentinel" GH_AW_WORKFLOW_NAME: "Test Quality Sentinel" @@ -1420,7 +1420,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Quality Sentinel" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-quality-sentinel.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index b3695278e17..2dc64136ee4 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -97,15 +97,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Test Workflow" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -345,7 +345,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -392,7 +392,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -851,7 +851,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -915,7 +915,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "test-workflow" GH_AW_WORKFLOW_NAME: "Test Workflow" outputs: @@ -945,7 +945,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Workflow" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/test-workflow.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 95ce7c41349..24596469e0f 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -123,15 +123,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Tidy" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/tidy.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Tidy" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -424,7 +424,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Tidy" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/tidy.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -485,7 +485,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1077,7 +1077,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Tidy" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/tidy.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1241,7 +1241,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Tidy" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/tidy.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1326,7 +1326,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1433,7 +1433,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Tidy" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/tidy.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1477,7 +1477,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "tidy" GH_AW_WORKFLOW_NAME: "Tidy" outputs: @@ -1509,7 +1509,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Tidy" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/tidy.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index ae23f792f6d..fe924c3ed55 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -118,7 +118,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Typist - Go Type Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/typist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -127,8 +127,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Typist - Go Type Analysis" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -402,7 +402,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Typist - Go Type Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/typist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -458,7 +458,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Determine automatic lockdown mode for GitHub MCP Server id: determine-automatic-lockdown uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9) @@ -1101,7 +1101,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Typist - Go Type Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/typist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1240,7 +1240,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Typist - Go Type Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/typist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1327,7 +1327,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1458,7 +1458,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Typist - Go Type Analysis" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/typist.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact diff --git a/.github/workflows/ubuntu-image-analyzer.lock.yml b/.github/workflows/ubuntu-image-analyzer.lock.yml index 3857edce7e4..0420e2976c1 100644 --- a/.github/workflows/ubuntu-image-analyzer.lock.yml +++ b/.github/workflows/ubuntu-image-analyzer.lock.yml @@ -110,15 +110,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ubuntu-image-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -369,7 +369,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ubuntu-image-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -416,7 +416,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -988,7 +988,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ubuntu-image-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1136,7 +1136,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ubuntu-image-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1221,7 +1221,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1327,7 +1327,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ubuntu-image-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1373,7 +1373,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "ubuntu-image-analyzer" GH_AW_WORKFLOW_ID: "ubuntu-image-analyzer" GH_AW_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" @@ -1404,7 +1404,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Ubuntu Actions Image Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ubuntu-image-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 655b8c7c424..20aaaf7af9d 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -123,15 +123,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "claude" GH_AW_INFO_ENGINE_NAME: "Claude Code" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_CLAUDE || 'auto' }} - GH_AW_INFO_VERSION: "2.1.126" - GH_AW_INFO_AGENT_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" + GH_AW_INFO_AGENT_VERSION: "2.1.133" GH_AW_INFO_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -427,7 +427,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Set runtime paths id: set-runtime-paths run: | @@ -511,7 +511,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Install Playwright CLI run: npm install -g @playwright/cli@0.1.11 - name: Install Playwright CLI skills @@ -1257,7 +1257,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1419,7 +1419,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1506,7 +1506,7 @@ jobs: - name: Install AWF binary run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.41 - name: Install Claude Code CLI - run: npm install -g @anthropic-ai/claude-code@2.1.126 + run: npm install -g @anthropic-ai/claude-code@2.1.133 - name: Execute Claude Code CLI if: always() && steps.detection_guard.outputs.run_detection == 'true' continue-on-error: true @@ -1617,7 +1617,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Check team membership for command workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1707,7 +1707,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1849,7 +1849,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1903,7 +1903,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Documentation Unbloat" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/unbloat-docs.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "2.1.126" + GH_AW_INFO_VERSION: "2.1.133" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: diff --git a/.github/workflows/update-astro.lock.yml b/.github/workflows/update-astro.lock.yml index 67c87f197d0..fe5de3664bf 100644 --- a/.github/workflows/update-astro.lock.yml +++ b/.github/workflows/update-astro.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Update Astro" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/update-astro.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Update Astro" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -371,7 +371,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Update Astro" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/update-astro.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -418,7 +418,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1013,7 +1013,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Update Astro" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/update-astro.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1161,7 +1161,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Update Astro" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/update-astro.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1246,7 +1246,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1352,7 +1352,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Update Astro" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/update-astro.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1398,7 +1398,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "update-astro" GH_AW_WORKFLOW_ID: "update-astro" GH_AW_WORKFLOW_NAME: "Update Astro" @@ -1429,7 +1429,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Update Astro" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/update-astro.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index bbaa1ab6497..87810deefdc 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -103,15 +103,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Video Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/video-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Video Analysis Agent" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -358,7 +358,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Video Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/video-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -413,7 +413,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -955,7 +955,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Video Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/video-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1096,7 +1096,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Video Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/video-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1181,7 +1181,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1280,7 +1280,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "video-analyzer" GH_AW_WORKFLOW_NAME: "Video Analysis Agent" outputs: @@ -1310,7 +1310,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Video Analysis Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/video-analyzer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/visual-regression-checker.lock.yml b/.github/workflows/visual-regression-checker.lock.yml index 85efe5f24dc..058ee266bf5 100644 --- a/.github/workflows/visual-regression-checker.lock.yml +++ b/.github/workflows/visual-regression-checker.lock.yml @@ -108,15 +108,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/visual-regression-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -368,7 +368,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/visual-regression-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -444,7 +444,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1002,7 +1002,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/visual-regression-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1143,7 +1143,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/visual-regression-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1228,7 +1228,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1335,7 +1335,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/visual-regression-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1369,7 +1369,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "visual-regression-checker" GH_AW_WORKFLOW_NAME: "Visual Regression Checker" outputs: @@ -1399,7 +1399,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Visual Regression Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/visual-regression-checker.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/weekly-blog-post-writer.lock.yml b/.github/workflows/weekly-blog-post-writer.lock.yml index c5e0d35582c..7474e1b35fb 100644 --- a/.github/workflows/weekly-blog-post-writer.lock.yml +++ b/.github/workflows/weekly-blog-post-writer.lock.yml @@ -106,15 +106,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-blog-post-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -379,7 +379,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-blog-post-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -466,7 +466,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1075,7 +1075,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-blog-post-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1227,7 +1227,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-blog-post-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1312,7 +1312,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1429,7 +1429,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-blog-post-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1506,7 +1506,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "weekly-blog-post-writer" GH_AW_WORKFLOW_ID: "weekly-blog-post-writer" GH_AW_WORKFLOW_NAME: "Weekly Blog Post Writer" @@ -1537,7 +1537,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Blog Post Writer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-blog-post-writer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/weekly-editors-health-check.lock.yml b/.github/workflows/weekly-editors-health-check.lock.yml index 2e8fc4d4088..c146852e1e4 100644 --- a/.github/workflows/weekly-editors-health-check.lock.yml +++ b/.github/workflows/weekly-editors-health-check.lock.yml @@ -99,15 +99,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-editors-health-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -356,7 +356,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-editors-health-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -403,7 +403,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1014,7 +1014,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-editors-health-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1162,7 +1162,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-editors-health-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1247,7 +1247,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1347,7 +1347,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "weekly-editors-health-check" GH_AW_WORKFLOW_ID: "weekly-editors-health-check" GH_AW_WORKFLOW_NAME: "Weekly Editors Health Check" @@ -1378,7 +1378,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-editors-health-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1519,7 +1519,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-editors-health-check.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1574,7 +1574,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Weekly Editors Health Check" GH_AW_TRACKER_ID: "weekly-editors-health-check" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index de0432ab21c..ae005f29e54 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -120,7 +120,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info @@ -129,8 +129,8 @@ jobs: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -385,7 +385,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -454,7 +454,7 @@ jobs: git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git" echo "Git configured with standard GitHub Actions identity" - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1035,7 +1035,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1183,7 +1183,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1268,7 +1268,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1368,7 +1368,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "weekly-issue-summary" GH_AW_WORKFLOW_ID: "weekly-issue-summary" GH_AW_WORKFLOW_NAME: "Weekly Issue Summary" @@ -1397,7 +1397,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Mask OTLP telemetry headers run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact @@ -1480,7 +1480,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download cache-memory artifact (default) id: download_cache_default uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 @@ -1534,7 +1534,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-issue-summary.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1589,7 +1589,7 @@ jobs: GH_AW_WORKFLOW_NAME: "Weekly Issue Summary" GH_AW_TRACKER_ID: "weekly-issue-summary" GH_AW_ENGINE_ID: "copilot" - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml index 9878c5bc96a..39defc43c65 100644 --- a/.github/workflows/weekly-safe-outputs-spec-review.lock.yml +++ b/.github/workflows/weekly-safe-outputs-spec-review.lock.yml @@ -103,15 +103,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-safe-outputs-spec-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -356,7 +356,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-safe-outputs-spec-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -403,7 +403,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -948,7 +948,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-safe-outputs-spec-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1096,7 +1096,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-safe-outputs-spec-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1181,7 +1181,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1281,7 +1281,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "weekly-safe-outputs-spec-review" GH_AW_WORKFLOW_ID: "weekly-safe-outputs-spec-review" GH_AW_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" @@ -1312,7 +1312,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Weekly Safe Outputs Specification Review" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/weekly-safe-outputs-spec-review.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/workflow-generator.lock.yml b/.github/workflows/workflow-generator.lock.yml index 129c7574dd8..f83889ba23b 100644 --- a/.github/workflows/workflow-generator.lock.yml +++ b/.github/workflows/workflow-generator.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Workflow Generator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -390,7 +390,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -437,7 +437,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1021,7 +1021,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1164,7 +1164,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1249,7 +1249,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1357,7 +1357,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -1405,7 +1405,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "workflow-generator" GH_AW_WORKFLOW_NAME: "Workflow Generator" outputs: @@ -1436,7 +1436,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1516,7 +1516,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-generator.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Unlock issue after agentic workflow id: unlock-issue if: (github.event_name == 'issues' || github.event_name == 'issue_comment') && needs.activation.outputs.issue_locked == 'true' diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 0eda10a628c..55751b4581e 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -103,15 +103,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-health-manager.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -369,7 +369,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-health-manager.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -431,7 +431,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1066,7 +1066,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-health-manager.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1211,7 +1211,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-health-manager.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1296,7 +1296,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1413,7 +1413,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-health-manager.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -1491,7 +1491,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "workflow-health-manager" GH_AW_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" outputs: @@ -1523,7 +1523,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Health Manager - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-health-manager.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index 56bb8a63232..e64381fa149 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -105,15 +105,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Normalizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-normalizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Workflow Normalizer" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -359,7 +359,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Normalizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-normalizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -436,7 +436,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1024,7 +1024,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Normalizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-normalizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1170,7 +1170,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Normalizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-normalizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1255,7 +1255,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1354,7 +1354,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_TRACKER_ID: "workflow-normalizer" GH_AW_WORKFLOW_ID: "workflow-normalizer" GH_AW_WORKFLOW_NAME: "Workflow Normalizer" @@ -1385,7 +1385,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Normalizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-normalizer.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index 826a69effa5..b9d4dafb763 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -102,15 +102,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Skill Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-skill-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Workflow Skill Extractor" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -354,7 +354,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Skill Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-skill-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Set runtime paths id: set-runtime-paths run: | @@ -406,7 +406,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -999,7 +999,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Skill Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-skill-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1142,7 +1142,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Skill Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-skill-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1227,7 +1227,7 @@ jobs: node-version: '24' package-manager-cache: false - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -1327,7 +1327,7 @@ jobs: GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }} GH_AW_ENGINE_ID: "copilot" GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }} - GH_AW_ENGINE_VERSION: "1.0.40" + GH_AW_ENGINE_VERSION: "1.0.43" GH_AW_WORKFLOW_ID: "workflow-skill-extractor" GH_AW_WORKFLOW_NAME: "Workflow Skill Extractor" outputs: @@ -1357,7 +1357,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Skill Extractor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/workflow-skill-extractor.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/pkg/constants/version_constants.go b/pkg/constants/version_constants.go index 73635bfcdc2..f3c929f990b 100644 --- a/pkg/constants/version_constants.go +++ b/pkg/constants/version_constants.go @@ -32,17 +32,17 @@ func (v Version) IsValid() bool { type ModelName string // DefaultClaudeCodeVersion is the default version of the Claude Code CLI. -const DefaultClaudeCodeVersion Version = "2.1.126" +const DefaultClaudeCodeVersion Version = "2.1.133" // DefaultCopilotVersion is the default version of the GitHub Copilot CLI. // // When unpinning or upgrading this version, verify: // - MCPs are not blocked from loading (tools.mcp configuration still works end-to-end) // - /models does not silently fail on PATs (check that model listing works with PAT auth) -const DefaultCopilotVersion Version = "1.0.40" +const DefaultCopilotVersion Version = "1.0.43" // DefaultCodexVersion is the default version of the OpenAI Codex CLI -const DefaultCodexVersion Version = "0.128.0" +const DefaultCodexVersion Version = "0.129.0" // DefaultGeminiVersion is the default version of the Google Gemini CLI const DefaultGeminiVersion Version = "0.39.1" @@ -103,7 +103,7 @@ const DefaultMCPGatewayVersion Version = "v0.3.6" const MCPGIntegrityReactionsMinVersion Version = "v0.2.18" // DefaultPlaywrightMCPVersion is the default version of the @playwright/mcp package -const DefaultPlaywrightMCPVersion Version = "0.0.73" +const DefaultPlaywrightMCPVersion Version = "0.0.75" // DefaultPlaywrightCLIVersion is the default version of the @playwright/cli package // Used when tools.playwright.mode is "cli" to install the CLI tool instead of the MCP server. diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden index 9cc1905ae8d..90fb4da5fed 100644 --- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden +++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden @@ -50,15 +50,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "basic-copilot-test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/basic-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "basic-copilot-test" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -282,7 +282,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "basic-copilot-test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/basic-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -321,7 +321,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -609,7 +609,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "basic-copilot-test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/basic-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden index 5041f9242ec..924f3017bc6 100644 --- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden +++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden @@ -50,15 +50,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Playwright CLI Mode" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/playwright-cli-mode.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Test Playwright CLI Mode" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -292,7 +292,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Playwright CLI Mode" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/playwright-cli-mode.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -331,7 +331,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -623,7 +623,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Test Playwright CLI Mode" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/playwright-cli-mode.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden index a0ec73202bd..e49a5baa85f 100644 --- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden +++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden @@ -64,15 +64,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "Smoke Copilot" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -398,7 +398,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -474,7 +474,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -855,7 +855,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "Smoke Copilot" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/smoke-copilot.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 diff --git a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden index 470aa50fb0b..944b5448e07 100644 --- a/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden +++ b/pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden @@ -50,15 +50,15 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "with-imports-test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/with-imports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Generate agentic run info id: generate_aw_info env: GH_AW_INFO_ENGINE_ID: "copilot" GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI" GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }} - GH_AW_INFO_VERSION: "1.0.40" - GH_AW_INFO_AGENT_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" + GH_AW_INFO_AGENT_VERSION: "1.0.43" GH_AW_INFO_WORKFLOW_NAME: "with-imports-test" GH_AW_INFO_EXPERIMENTAL: "false" GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true" @@ -283,7 +283,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "with-imports-test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/with-imports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -322,7 +322,7 @@ jobs: const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs'); await main(); - name: Install GitHub Copilot CLI - run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40 + run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.43 env: GH_HOST: github.com - name: Install AWF binary @@ -610,7 +610,7 @@ jobs: env: GH_AW_SETUP_WORKFLOW_NAME: "with-imports-test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/with-imports.lock.yml@${{ github.ref }} - GH_AW_INFO_VERSION: "1.0.40" + GH_AW_INFO_VERSION: "1.0.43" - name: Check team membership for workflow id: check_membership uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 From b190ce5213891766aa60d7662ac7a69d32956820 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 03:50:16 -0700 Subject: [PATCH 07/16] docs: update glossary - daily scan 2026-05-08 (#30998) --- docs/src/content/docs/reference/glossary.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/src/content/docs/reference/glossary.md b/docs/src/content/docs/reference/glossary.md index 5c4fadde790..26961c68634 100644 --- a/docs/src/content/docs/reference/glossary.md +++ b/docs/src/content/docs/reference/glossary.md @@ -237,6 +237,10 @@ A field on `submit-pull-request-review:` safe outputs that restricts which PR re A field on `submit-pull-request-review:` safe outputs that dismisses older `REQUEST_CHANGES` reviews from the same workflow after posting a replacement review. When `supersede-older-reviews: true` is set, the safe-output handler fetches recent reviews, identifies prior `REQUEST_CHANGES` reviews submitted by the same workflow call, and dismisses them before the new review takes effect. This is best-effort behavior — dismissal failures do not block the new review. Useful when a workflow is configured with `allowed-events: [REQUEST_CHANGES]` and repeated runs would otherwise accumulate blocking reviews. See [Safe Outputs (Pull Requests)](/gh-aw/reference/safe-outputs-pull-requests/#submit-pr-review-submit-pull-request-review). +### Allowed Fields (`create-issue:`) + +A configuration field on `create-issue:` safe outputs that restricts which GitHub Project custom fields the agent may set when creating issues. Accepts an array of field names (e.g., `[Priority, Iteration]`). When set, the safe-outputs handler rejects any attempt to populate a field not in the list. When omitted, all project fields are permitted. Example: `allowed-fields: [Priority, Iteration]`. See [Safe Outputs Reference](/gh-aw/reference/safe-outputs/#issue-creation-create-issue). + ### Allowed Files An exclusive allowlist for `create-pull-request` and `push-to-pull-request-branch` safe outputs. When `allowed-files:` is set to a list of glob patterns, **only** files matching those patterns may be modified — every other file (including normal source files) is refused. This is a restriction, not an exception: listing `.github/workflows/*` does not additionally allow normal source files; it blocks them. Runs independently from [Protected Files](#protected-files): both checks must pass. To modify a protected file, it must both match `allowed-files` and have `protected-files: allowed`. See [Safe Outputs (Pull Requests)](/gh-aw/reference/safe-outputs-pull-requests/#restricting-changes-to-specific-files-with-allowed-files). @@ -539,6 +543,10 @@ A security linter for GitHub Actions workflows that detects supply-chain vulnera Checking workflow files for errors, security issues, and best practices. Occurs during compilation and can be enhanced with strict mode and security scanners. +### `gh aw lint` + +A CLI command that runs actionlint on existing `.lock.yml` workflow files without recompiling the source Markdown. Unlike `gh aw compile --actionlint`, it reads lock files directly from disk, skipping `zizmor` and `poutine`. Supports `--shellcheck` and `--pyflakes` flags to enable script integrations for shell and Python analysis. Useful for fast local feedback after manual lock-file edits. See [CLI Reference](/gh-aw/setup/cli/). + ### zizmor A security auditing tool for GitHub Actions workflows that identifies vulnerabilities including script injections, excessive permissions, and unsafe use of GitHub context expressions. Integrated into `gh aw compile` via the `--zizmor` flag. Typically used alongside [actionlint](#actionlint) and [poutine](#poutine). From 8f698270cfd8800eaa0c70d31e0b7408548bfa66 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 03:52:18 -0700 Subject: [PATCH 08/16] Add `set-issue-field` safe output with allowed-fields constraints, schema/compiler wiring, actionable field-value errors, and smoke-codex coverage (#30941) --- .github/workflows/ab-testing-advisor.lock.yml | 3 + .github/workflows/ace-editor.lock.yml | 3 + .../agent-performance-analyzer.lock.yml | 3 + .../workflows/architecture-guardian.lock.yml | 3 + .../aw-failure-investigator.lock.yml | 3 + .github/workflows/bot-detection.lock.yml | 3 + .../breaking-change-checker.lock.yml | 3 + .github/workflows/ci-doctor.lock.yml | 3 + .../cli-consistency-checker.lock.yml | 3 + .../workflows/cli-version-checker.lock.yml | 3 + .../codex-github-remote-mcp-test.lock.yml | 3 + .github/workflows/contribution-check.lock.yml | 3 + .github/workflows/copilot-opt.lock.yml | 3 + .../workflows/copilot-token-audit.lock.yml | 3 + .../copilot-token-optimizer.lock.yml | 3 + .../daily-architecture-diagram.lock.yml | 3 + ...daily-aw-cross-repo-compile-check.lock.yml | 3 + .../daily-cache-strategy-analyzer.lock.yml | 15 +- .../workflows/daily-cli-performance.lock.yml | 3 + .../workflows/daily-cli-tools-tester.lock.yml | 3 + .../daily-community-attribution.lock.yml | 3 + .github/workflows/daily-doc-healer.lock.yml | 3 + .github/workflows/daily-file-diet.lock.yml | 3 + .../workflows/daily-function-namer.lock.yml | 3 + ...fana-otel-instrumentation-advisor.lock.yml | 3 + .../daily-mcp-concurrency-analysis.lock.yml | 3 + .../workflows/daily-model-inventory.lock.yml | 3 + .../daily-multi-device-docs-tester.lock.yml | 3 + ...aily-otel-instrumentation-advisor.lock.yml | 3 + .../daily-safe-output-optimizer.lock.yml | 3 + .../daily-safe-outputs-conformance.lock.yml | 3 + .../daily-security-red-team.lock.yml | 3 + .../workflows/daily-skill-optimizer.lock.yml | 3 + .../daily-spdd-spec-planner.lock.yml | 3 + .../daily-subagent-optimizer.lock.yml | 3 + .../daily-syntax-error-quality.lock.yml | 3 + .github/workflows/daily-team-status.lock.yml | 3 + .../daily-testify-uber-super-expert.lock.yml | 3 + .../daily-token-consumption-report.lock.yml | 3 + .github/workflows/deep-report.lock.yml | 3 + .github/workflows/delight.lock.yml | 3 + .github/workflows/dependabot-burner.lock.yml | 3 + .../workflows/dependabot-go-checker.lock.yml | 3 + .../deployment-incident-monitor.lock.yml | 3 + .github/workflows/dev.lock.yml | 3 + .../workflows/discussion-task-miner.lock.yml | 3 + .../duplicate-code-detector.lock.yml | 15 +- .../example-permissions-warning.lock.yml | 3 + .github/workflows/firewall.lock.yml | 3 + .../workflows/go-pattern-detector.lock.yml | 3 + .github/workflows/gpclean.lock.yml | 3 + .github/workflows/hippo-embed.lock.yml | 3 + .github/workflows/issue-arborist.lock.yml | 15 +- .github/workflows/metrics-collector.lock.yml | 3 + .github/workflows/plan.lock.yml | 3 + .github/workflows/poem-bot.lock.yml | 3 + .github/workflows/pr-triage-agent.lock.yml | 3 + .../workflows/refactoring-cadence.lock.yml | 3 + .../workflows/security-compliance.lock.yml | 3 + .../semantic-function-refactor.lock.yml | 3 + .github/workflows/sergo.lock.yml | 3 + .github/workflows/smoke-ci.lock.yml | 3 + .github/workflows/smoke-claude.lock.yml | 3 + .github/workflows/smoke-codex.lock.yml | 102 +++-- .github/workflows/smoke-codex.md | 19 +- .github/workflows/smoke-copilot-arm.lock.yml | 3 + .../smoke-create-cross-repo-pr.lock.yml | 3 + .github/workflows/smoke-crush.lock.yml | 3 + .github/workflows/smoke-gemini.lock.yml | 3 + .github/workflows/smoke-opencode.lock.yml | 3 + .github/workflows/smoke-pi.lock.yml | 3 + .github/workflows/smoke-project.lock.yml | 3 + .github/workflows/smoke-temporary-id.lock.yml | 3 + .../smoke-update-cross-repo-pr.lock.yml | 3 + .../smoke-workflow-call-with-inputs.lock.yml | 3 + .github/workflows/spec-librarian.lock.yml | 3 + .../workflows/stale-repo-identifier.lock.yml | 3 + .../workflows/static-analysis-report.lock.yml | 3 + .../workflows/step-name-alignment.lock.yml | 3 + .github/workflows/super-linter.lock.yml | 3 + .github/workflows/test-workflow.lock.yml | 3 + .github/workflows/video-analyzer.lock.yml | 3 + .../workflow-health-manager.lock.yml | 3 + .../workflows/workflow-normalizer.lock.yml | 3 + .../workflow-skill-extractor.lock.yml | 3 + actions/setup/js/allowed_issue_fields.cjs | 64 +++ actions/setup/js/create_issue.cjs | 46 +- .../setup/js/safe_output_handler_manager.cjs | 1 + actions/setup/js/safe_outputs_tools.json | 35 ++ actions/setup/js/set_issue_field.cjs | 408 ++++++++++++++++++ actions/setup/js/set_issue_field.test.cjs | 243 +++++++++++ actions/setup/js/types/safe-outputs.d.ts | 17 + docs/src/content/docs/reference/glossary.md | 4 + .../content/docs/reference/safe-outputs.md | 18 + pkg/parser/schemas/main_workflow_schema.json | 63 ++- .../compiler_safe_outputs_config_test.go | 15 + .../compiler_safe_outputs_handlers.go | 19 + pkg/workflow/compiler_safe_outputs_job.go | 1 + .../compiler_safe_outputs_job_test.go | 9 + pkg/workflow/compiler_types.go | 1 + pkg/workflow/imports.go | 5 + pkg/workflow/js/safe_outputs_tools.json | 40 ++ .../safe_output_validation_config_test.go | 1 + pkg/workflow/safe_outputs_config.go | 6 + pkg/workflow/safe_outputs_max_validation.go | 5 + pkg/workflow/safe_outputs_permissions.go | 4 + pkg/workflow/safe_outputs_state.go | 5 +- .../safe_outputs_tools_computation.go | 3 + .../safe_outputs_tools_repo_params.go | 7 +- .../safe_outputs_validation_config.go | 11 + pkg/workflow/set_issue_field.go | 24 ++ .../set_issue_field_handler_config_test.go | 84 ++++ pkg/workflow/tool_description_enhancer.go | 30 +- .../tool_description_enhancer_test.go | 27 ++ pkg/workflow/unified_prompt_step.go | 3 + 115 files changed, 1493 insertions(+), 112 deletions(-) create mode 100644 actions/setup/js/allowed_issue_fields.cjs create mode 100644 actions/setup/js/set_issue_field.cjs create mode 100644 actions/setup/js/set_issue_field.test.cjs create mode 100644 pkg/workflow/set_issue_field.go create mode 100644 pkg/workflow/set_issue_field_handler_config_test.go diff --git a/.github/workflows/ab-testing-advisor.lock.yml b/.github/workflows/ab-testing-advisor.lock.yml index 549bce70b44..97983797a7b 100644 --- a/.github/workflows/ab-testing-advisor.lock.yml +++ b/.github/workflows/ab-testing-advisor.lock.yml @@ -485,6 +485,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml index 982df133fc9..27b7aace888 100644 --- a/.github/workflows/ace-editor.lock.yml +++ b/.github/workflows/ace-editor.lock.yml @@ -481,6 +481,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index acdb3ac5430..053c2ecd70a 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -599,6 +599,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/architecture-guardian.lock.yml b/.github/workflows/architecture-guardian.lock.yml index 6b41ed001fe..677b399ca7d 100644 --- a/.github/workflows/architecture-guardian.lock.yml +++ b/.github/workflows/architecture-guardian.lock.yml @@ -478,6 +478,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/aw-failure-investigator.lock.yml b/.github/workflows/aw-failure-investigator.lock.yml index ea0b5acb4f7..f986725637c 100644 --- a/.github/workflows/aw-failure-investigator.lock.yml +++ b/.github/workflows/aw-failure-investigator.lock.yml @@ -531,6 +531,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index 9b94d123411..d1423ce89c6 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -480,6 +480,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index bb644c1ff48..65086bffba4 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -468,6 +468,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index ccb211680f7..5da79760c8e 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -609,6 +609,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index 6493704397f..f8cc3f24236 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -454,6 +454,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 83b2b17e24b..3be0a34701b 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -492,6 +492,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index 7d587df62e9..b8b0b8a1c41 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -454,6 +454,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index 3cfd8421856..46b934ce156 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -576,6 +576,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/copilot-opt.lock.yml b/.github/workflows/copilot-opt.lock.yml index f0a58b911e8..ce65f1ad744 100644 --- a/.github/workflows/copilot-opt.lock.yml +++ b/.github/workflows/copilot-opt.lock.yml @@ -513,6 +513,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml index b542bbf141f..64e554f35ae 100644 --- a/.github/workflows/copilot-token-audit.lock.yml +++ b/.github/workflows/copilot-token-audit.lock.yml @@ -573,6 +573,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/copilot-token-optimizer.lock.yml b/.github/workflows/copilot-token-optimizer.lock.yml index 738e47baf6c..e5f13e57cc2 100644 --- a/.github/workflows/copilot-token-optimizer.lock.yml +++ b/.github/workflows/copilot-token-optimizer.lock.yml @@ -506,6 +506,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index 89d800a9558..fbd38f57dac 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -528,6 +528,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml index 7e2d6f7c67f..1cdbbeaa0ce 100644 --- a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml +++ b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml @@ -504,6 +504,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-cache-strategy-analyzer.lock.yml b/.github/workflows/daily-cache-strategy-analyzer.lock.yml index 18db649626b..ccbd61a1aca 100644 --- a/.github/workflows/daily-cache-strategy-analyzer.lock.yml +++ b/.github/workflows/daily-cache-strategy-analyzer.lock.yml @@ -608,6 +608,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", @@ -1429,18 +1432,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_de64d9d18b620726_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_064564c6343901d3_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_de64d9d18b620726_EOF + GH_AW_MCP_CONFIG_064564c6343901d3_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b478abb36de9495d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_29baf567a663cbb4_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1451,11 +1454,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_b478abb36de9495d_EOF + GH_AW_MCP_CONFIG_29baf567a663cbb4_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_73dbda43b4bb5649_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_44a94b5204e38d49_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1465,7 +1468,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_73dbda43b4bb5649_EOF + GH_AW_CODEX_SHELL_POLICY_44a94b5204e38d49_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index e694b94c848..ed064f3dece 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -586,6 +586,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index 2d6850ef461..add9ac377cb 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -570,6 +570,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-community-attribution.lock.yml b/.github/workflows/daily-community-attribution.lock.yml index cb534351a56..ff83904d3ad 100644 --- a/.github/workflows/daily-community-attribution.lock.yml +++ b/.github/workflows/daily-community-attribution.lock.yml @@ -561,6 +561,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index 33158c6a388..4fecab5a4e7 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -536,6 +536,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 859b3bc33de..d1c9023e49a 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -522,6 +522,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 60b21fa4e07..854f747b63c 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -567,6 +567,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml index 0c8b63a20df..6a5c807db0b 100644 --- a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml @@ -515,6 +515,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index fe5f7c86ac7..62e416a0c7f 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -578,6 +578,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-model-inventory.lock.yml b/.github/workflows/daily-model-inventory.lock.yml index da9de5a4521..2a698a0d846 100644 --- a/.github/workflows/daily-model-inventory.lock.yml +++ b/.github/workflows/daily-model-inventory.lock.yml @@ -504,6 +504,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index b43226c911a..80913af5cb0 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -529,6 +529,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml index a0a6564c6c8..aaaf39b26b6 100644 --- a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml @@ -513,6 +513,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index 0d783e05dcf..e9b1e8c9acf 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -612,6 +612,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index 7bfca01c169..d600deba415 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -506,6 +506,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index 6ea3b669be0..07743b2dc98 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -538,6 +538,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-skill-optimizer.lock.yml b/.github/workflows/daily-skill-optimizer.lock.yml index e5e7bd2d65b..d180c497324 100644 --- a/.github/workflows/daily-skill-optimizer.lock.yml +++ b/.github/workflows/daily-skill-optimizer.lock.yml @@ -486,6 +486,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-spdd-spec-planner.lock.yml b/.github/workflows/daily-spdd-spec-planner.lock.yml index 9c4f3383866..e4e0027b30a 100644 --- a/.github/workflows/daily-spdd-spec-planner.lock.yml +++ b/.github/workflows/daily-spdd-spec-planner.lock.yml @@ -490,6 +490,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-subagent-optimizer.lock.yml b/.github/workflows/daily-subagent-optimizer.lock.yml index 86fbad6e348..1a886d798ac 100644 --- a/.github/workflows/daily-subagent-optimizer.lock.yml +++ b/.github/workflows/daily-subagent-optimizer.lock.yml @@ -559,6 +559,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index cc7bde4cbc0..87581a262d3 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -515,6 +515,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 391f12928b8..07e39fda6f8 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -519,6 +519,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-testify-uber-super-expert.lock.yml b/.github/workflows/daily-testify-uber-super-expert.lock.yml index 71c89c41e1c..22fb466f483 100644 --- a/.github/workflows/daily-testify-uber-super-expert.lock.yml +++ b/.github/workflows/daily-testify-uber-super-expert.lock.yml @@ -546,6 +546,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/daily-token-consumption-report.lock.yml b/.github/workflows/daily-token-consumption-report.lock.yml index d208bc1381b..e02b4bc012c 100644 --- a/.github/workflows/daily-token-consumption-report.lock.yml +++ b/.github/workflows/daily-token-consumption-report.lock.yml @@ -516,6 +516,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index e8a8defed2c..7cd2c5cc355 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -673,6 +673,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 0820a767c8c..9a54eeeef8f 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -532,6 +532,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 613a129cf37..2abb8426eda 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -461,6 +461,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 6bb0decadc9..d470a44e282 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -484,6 +484,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/deployment-incident-monitor.lock.yml b/.github/workflows/deployment-incident-monitor.lock.yml index 0030799a3c9..4515d46aaed 100644 --- a/.github/workflows/deployment-incident-monitor.lock.yml +++ b/.github/workflows/deployment-incident-monitor.lock.yml @@ -468,6 +468,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 52a75b891af..2edea8b4529 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -517,6 +517,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/discussion-task-miner.lock.yml b/.github/workflows/discussion-task-miner.lock.yml index 3851ec0720d..83bc13a16c5 100644 --- a/.github/workflows/discussion-task-miner.lock.yml +++ b/.github/workflows/discussion-task-miner.lock.yml @@ -510,6 +510,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 8137adf8223..9c0c7f1e0d6 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -507,6 +507,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", @@ -1317,18 +1320,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_c51711226436d0bd_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_537488539a145e30_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_c51711226436d0bd_EOF + GH_AW_MCP_CONFIG_537488539a145e30_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_4bfa2b3d3ee1ceab_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_0cfa5d99353d01ee_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1339,11 +1342,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_4bfa2b3d3ee1ceab_EOF + GH_AW_MCP_CONFIG_0cfa5d99353d01ee_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_ccbf946e47882948_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_09f9b523bfe32508_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1353,7 +1356,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_ccbf946e47882948_EOF + GH_AW_CODEX_SHELL_POLICY_09f9b523bfe32508_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index a241da13179..d8bbc6012fd 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -453,6 +453,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 5858ca71695..3dfd280c454 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -455,6 +455,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index ad4b949159b..1dedc1b749f 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -473,6 +473,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/gpclean.lock.yml b/.github/workflows/gpclean.lock.yml index f3bb19fd36c..1d488b3bf56 100644 --- a/.github/workflows/gpclean.lock.yml +++ b/.github/workflows/gpclean.lock.yml @@ -492,6 +492,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/hippo-embed.lock.yml b/.github/workflows/hippo-embed.lock.yml index d48c3a635a5..daab6ea0dab 100644 --- a/.github/workflows/hippo-embed.lock.yml +++ b/.github/workflows/hippo-embed.lock.yml @@ -488,6 +488,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 8a6ba2e259e..0dda81456ca 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -602,6 +602,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", @@ -1386,18 +1389,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_674a878025566fc9_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d9da00b71d42dc5e_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_674a878025566fc9_EOF + GH_AW_MCP_CONFIG_d9da00b71d42dc5e_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_9e5f38cce10c70fd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_399e71eeb47db0ab_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1408,11 +1411,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_9e5f38cce10c70fd_EOF + GH_AW_MCP_CONFIG_399e71eeb47db0ab_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_085777e59741e8b5_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_4f484691bd2f358a_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1422,7 +1425,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_085777e59741e8b5_EOF + GH_AW_CODEX_SHELL_POLICY_4f484691bd2f358a_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/metrics-collector.lock.yml b/.github/workflows/metrics-collector.lock.yml index 78c08f98f15..c23ed0ffdd5 100644 --- a/.github/workflows/metrics-collector.lock.yml +++ b/.github/workflows/metrics-collector.lock.yml @@ -557,6 +557,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index f32f56743d9..1ddfe425fb3 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -543,6 +543,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 55584907cb4..930998360dd 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -678,6 +678,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/pr-triage-agent.lock.yml b/.github/workflows/pr-triage-agent.lock.yml index 1f3e7f0bf63..4bc883e872c 100644 --- a/.github/workflows/pr-triage-agent.lock.yml +++ b/.github/workflows/pr-triage-agent.lock.yml @@ -558,6 +558,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/refactoring-cadence.lock.yml b/.github/workflows/refactoring-cadence.lock.yml index 84205b732e7..6790d4d6cff 100644 --- a/.github/workflows/refactoring-cadence.lock.yml +++ b/.github/workflows/refactoring-cadence.lock.yml @@ -491,6 +491,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index 0fccf20b16b..206ee038a9e 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -500,6 +500,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 50a80d86d47..4f1e4554867 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -520,6 +520,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/sergo.lock.yml b/.github/workflows/sergo.lock.yml index a348dd6907d..4144e749641 100644 --- a/.github/workflows/sergo.lock.yml +++ b/.github/workflows/sergo.lock.yml @@ -569,6 +569,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-ci.lock.yml b/.github/workflows/smoke-ci.lock.yml index e88635d534d..d632d41a6a4 100644 --- a/.github/workflows/smoke-ci.lock.yml +++ b/.github/workflows/smoke-ci.lock.yml @@ -609,6 +609,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 1a747fdb068..8de9b4b2f0c 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -1188,6 +1188,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 0af2aa09044..bb36075cf5a 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5654399396a1259c6dd48c4a40a088432604138bc7c3df639ce30480fcb35914","agent_id":"codex"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1966a5593470eb9a658ba884daacb4988874da9f13de43dff1b94bc3d215f2e8","agent_id":"codex"} # gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions-ecosystem/action-add-labels","sha":"c96b68fec76a0987cd93957189e9abd0b9a72ff1","version":"v1.1.3"},{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -260,25 +260,25 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF' + cat << 'GH_AW_PROMPT_86f34cc6d485a7e9_EOF' - GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF + GH_AW_PROMPT_86f34cc6d485a7e9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/playwright_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF' + cat << 'GH_AW_PROMPT_86f34cc6d485a7e9_EOF' - Tools: add_comment(max:2), create_issue, add_labels, remove_labels, unassign_from_user, hide_comment(max:5), missing_tool, missing_data, noop, add_smoked_label - GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF + Tools: add_comment(max:2), create_issue, add_labels, remove_labels, unassign_from_user, hide_comment(max:5), set_issue_field, missing_tool, missing_data, noop, add_smoked_label + GH_AW_PROMPT_86f34cc6d485a7e9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_comment_memory.md" - cat << 'GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF' + cat << 'GH_AW_PROMPT_86f34cc6d485a7e9_EOF' - GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF + GH_AW_PROMPT_86f34cc6d485a7e9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF' + cat << 'GH_AW_PROMPT_86f34cc6d485a7e9_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -310,9 +310,9 @@ jobs: - **Note**: If a branch you need is not in the list above and is not listed as an additional fetched ref, it has NOT been checked out. For private repositories you cannot fetch it without proper authentication. If the branch is required and not available, exit with an error and ask the user to add it to the `fetch:` option of the `checkout:` configuration (e.g., `fetch: ["refs/pulls/open/*"]` for all open PR refs, or `fetch: ["main", "feature/my-branch"]` for specific branches). - GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF + GH_AW_PROMPT_86f34cc6d485a7e9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF' + cat << 'GH_AW_PROMPT_86f34cc6d485a7e9_EOF' ## Serena Code Analysis @@ -353,7 +353,7 @@ jobs: {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/smoke-codex.md}} - GH_AW_PROMPT_6bd5d9ef0cfb17a5_EOF + GH_AW_PROMPT_86f34cc6d485a7e9_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -609,9 +609,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_990c1eb48269b369_EOF' - {"add_comment":{"hide_older_comments":true,"max":2},"add_labels":{"allowed":["smoke-codex"]},"add_smoked_label":true,"comment_memory":{"max":1,"memory_id":"default"},"create_issue":{"close_older_issues":true,"close_older_key":"smoke-codex","expires":2,"labels":["automation","testing"],"max":1},"create_report_incomplete_issue":{},"hide_comment":{"max":5},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"remove_labels":{"allowed":["smoke"]},"report_incomplete":{},"unassign_from_user":{"allowed":["githubactionagent"],"max":1}} - GH_AW_SAFE_OUTPUTS_CONFIG_990c1eb48269b369_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_80cde1e004b80053_EOF' + {"add_comment":{"hide_older_comments":true,"max":2},"add_labels":{"allowed":["smoke-codex"]},"add_smoked_label":true,"comment_memory":{"max":1,"memory_id":"default"},"create_issue":{"close_older_issues":true,"close_older_key":"smoke-codex","expires":2,"labels":["automation","testing"],"max":1},"create_report_incomplete_issue":{},"hide_comment":{"max":5},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"remove_labels":{"allowed":["smoke"]},"report_incomplete":{},"set_issue_field":{"allowed_fields":["*"],"max":1},"unassign_from_user":{"allowed":["githubactionagent"],"max":1}} + GH_AW_SAFE_OUTPUTS_CONFIG_80cde1e004b80053_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -620,7 +620,8 @@ jobs: "add_comment": " CONSTRAINTS: Maximum 2 comment(s) can be added. Supports reply_to_id for discussion threading.", "add_labels": " CONSTRAINTS: Only these labels are allowed: [\"smoke-codex\"].", "create_issue": " CONSTRAINTS: Maximum 1 issue(s) can be created. Labels [\"automation\" \"testing\"] will be automatically added.", - "remove_labels": " CONSTRAINTS: Only these labels can be removed: [smoke]." + "remove_labels": " CONSTRAINTS: Only these labels can be removed: [smoke].", + "set_issue_field": " CONSTRAINTS: Maximum 1 issue field update(s) can be made. Any issue field is allowed." }, "repo_params": {}, "dynamic_tools": [ @@ -724,6 +725,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", @@ -865,6 +869,34 @@ jobs: } } }, + "set_issue_field": { + "defaultMax": 5, + "fields": { + "field_name": { + "type": "string", + "sanitize": true, + "maxLength": 128 + }, + "field_node_id": { + "type": "string", + "maxLength": 256 + }, + "issue_number": { + "issueOrPRNumber": true + }, + "repo": { + "type": "string", + "maxLength": 256 + }, + "value": { + "required": true, + "type": "string", + "sanitize": true, + "maxLength": 256 + } + }, + "customValidation": "requiresOneOf:field_name,field_node_id" + }, "unassign_from_user": { "defaultMax": 1, "fields": { @@ -939,7 +971,7 @@ jobs: - name: Write MCP Scripts Config run: | mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_ea62428d6b567c2d_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_3324323e1546af0f_EOF' { "serverName": "mcpscripts", "version": "1.0.0", @@ -969,8 +1001,8 @@ jobs: } ] } - GH_AW_MCP_SCRIPTS_TOOLS_ea62428d6b567c2d_EOF - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_9e9be9620ff39e25_EOF' + GH_AW_MCP_SCRIPTS_TOOLS_3324323e1546af0f_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_553d1c1cd9e241b0_EOF' const path = require("path"); const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs"); const configPath = path.join(__dirname, "tools.json"); @@ -984,12 +1016,12 @@ jobs: console.error("Failed to start mcp-scripts HTTP server:", error); process.exit(1); }); - GH_AW_MCP_SCRIPTS_SERVER_9e9be9620ff39e25_EOF + GH_AW_MCP_SCRIPTS_SERVER_553d1c1cd9e241b0_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" - name: Write MCP Scripts Tool Files run: | - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" << 'GH_AW_MCP_SCRIPTS_SH_GH_e06f151e3fec9952_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" << 'GH_AW_MCP_SCRIPTS_SH_GH_40837874df1ce5fa_EOF' #!/bin/bash # Auto-generated mcp-script tool: gh # Execute any gh CLI command. This tool is accessible as 'mcpscripts-gh'. Provide the full command after 'gh' (e.g., args: 'pr list --limit 5'). The tool will run: gh . Use single quotes ' for complex args to avoid shell interpretation issues. @@ -1001,7 +1033,7 @@ jobs: GH_TOKEN="$GH_AW_GH_TOKEN" gh $INPUT_ARGS - GH_AW_MCP_SCRIPTS_SH_GH_e06f151e3fec9952_EOF + GH_AW_MCP_SCRIPTS_SH_GH_40837874df1ce5fa_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" - name: Generate MCP Scripts Server Config @@ -1074,7 +1106,7 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_MCP_SCRIPTS_PORT -e GH_AW_MCP_SCRIPTS_API_KEY -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e CODEX_HOME -e GH_AW_GH_TOKEN -e GH_DEBUG -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_732c588478440710_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d98dadbd88963449_EOF [history] persistence = "none" @@ -1126,11 +1158,11 @@ jobs: [mcp_servers.serena."guard-policies".write-sink] accept = ["*"] - GH_AW_MCP_CONFIG_732c588478440710_EOF + GH_AW_MCP_CONFIG_d98dadbd88963449_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_732c588478440710_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d98dadbd88963449_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -1216,11 +1248,11 @@ jobs: } } } - GH_AW_MCP_CONFIG_732c588478440710_EOF + GH_AW_MCP_CONFIG_d98dadbd88963449_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_db31288df1eb158b_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_01e7883d1058b4a5_EOF model_provider = "openai-proxy" @@ -1232,7 +1264,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "GH_AW_ASSETS_ALLOWED_EXTS", "GH_AW_ASSETS_BRANCH", "GH_AW_ASSETS_MAX_SIZE_KB", "GH_AW_SAFE_OUTPUTS", "GITHUB_PERSONAL_ACCESS_TOKEN", "GITHUB_REPOSITORY", "GITHUB_SERVER_URL", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_db31288df1eb158b_EOF + GH_AW_CODEX_SHELL_POLICY_01e7883d1058b4a5_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1825,18 +1857,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_61d3fa0129c5a16a_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_15e70be1e1ac16d4_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_61d3fa0129c5a16a_EOF + GH_AW_MCP_CONFIG_15e70be1e1ac16d4_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_db4017edd1dcde18_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_4770171e6c750118_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1847,11 +1879,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_db4017edd1dcde18_EOF + GH_AW_MCP_CONFIG_4770171e6c750118_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_4d97817116a0a7b0_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_02ebfa55b244cbed_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1861,7 +1893,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_4d97817116a0a7b0_EOF + GH_AW_CODEX_SHELL_POLICY_02ebfa55b244cbed_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -2068,7 +2100,7 @@ jobs: GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} GH_AW_SAFE_OUTPUT_ACTIONS: "{\"add_smoked_label\":\"add_smoked_label\"}" - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-codex\"]},\"comment_memory\":{\"max\":1,\"memory_id\":\"default\"},\"create_issue\":{\"close_older_issues\":true,\"close_older_key\":\"smoke-codex\",\"expires\":2,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_report_incomplete_issue\":{},\"hide_comment\":{\"max\":5},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"report_incomplete\":{},\"unassign_from_user\":{\"allowed\":[\"githubactionagent\"],\"max\":1}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"add_comment\":{\"hide_older_comments\":true,\"max\":2},\"add_labels\":{\"allowed\":[\"smoke-codex\"]},\"comment_memory\":{\"max\":1,\"memory_id\":\"default\"},\"create_issue\":{\"close_older_issues\":true,\"close_older_key\":\"smoke-codex\",\"expires\":2,\"labels\":[\"automation\",\"testing\"],\"max\":1},\"create_report_incomplete_issue\":{},\"hide_comment\":{\"max\":5},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"remove_labels\":{\"allowed\":[\"smoke\"]},\"report_incomplete\":{},\"set_issue_field\":{\"allowed_fields\":[\"*\"],\"max\":1},\"unassign_from_user\":{\"allowed\":[\"githubactionagent\"],\"max\":1}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/smoke-codex.md b/.github/workflows/smoke-codex.md index 57da2faf942..d4b29389890 100644 --- a/.github/workflows/smoke-codex.md +++ b/.github/workflows/smoke-codex.md @@ -53,6 +53,9 @@ safe-outputs: close-older-issues: true close-older-key: "smoke-codex" labels: [automation, testing] + set-issue-field: + max: 1 + allowed-fields: ["*"] add-labels: allowed: [smoke-codex] remove-labels: @@ -99,16 +102,24 @@ checkout: 7. **Build gh-aw**: Run `GOCACHE=/tmp/go-cache GOMODCACHE=/tmp/go-mod make build` to verify the agent can successfully build the gh-aw project (both caches must be set to /tmp because the default cache locations are not writable). If the command fails, mark this test as ❌ and report the failure. 8. **Comment Memory Testing**: Append an original 3-line haiku to the comment-memory markdown file(s) in `/tmp/gh-aw/comment-memory/*.md` without removing existing content. 9. **Cache Memory Testing**: - - Check if `/tmp/gh-aw/cache-memory/smoke-codex-history.json` exists; if it does, read it and note the previous run's results (run ID, timestamp, status) - - Write current run results to `/tmp/gh-aw/cache-memory/smoke-codex-history.json` with content: `{"run_id": "${{ github.run_id }}", "timestamp": "", "status": "PASS or FAIL", "tests_passed": , "tests_failed": }` (create the parent directory if it doesn't exist) - - Use bash to verify the file was written successfully (use `cat` to read it back) + - Check if `/tmp/gh-aw/cache-memory/smoke-codex-history.json` exists; if it does, read it and note the previous run's results (run ID, timestamp, status) + - Write current run results to `/tmp/gh-aw/cache-memory/smoke-codex-history.json` with content: `{"run_id": "${{ github.run_id }}", "timestamp": "", "status": "PASS or FAIL", "tests_passed": , "tests_failed": }` (create the parent directory if it doesn't exist) + - Use bash to verify the file was written successfully (use `cat` to read it back) +10. **Set Issue Field Testing**: + - After creating the smoke-test issue, use `set_issue_field` exactly once on that new issue + - Discover available issue fields and choose one compatible field/value pair: + - text field → short text value + - number field → numeric value + - date field → `YYYY-MM-DD` + - single-select field → an existing option name + - If no editable issue fields are available, report this test as skipped with reason ## Output **ALWAYS create an issue** with a summary of the smoke test run: - Title: "Smoke Test: Codex - ${{ github.run_id }}" - Body should include: - - Test results (✅ or ❌ for each test, including test #9 Cache Memory) + - Test results (✅ or ❌ for each test, including test #9 Cache Memory and test #10 Set Issue Field) - Overall status: PASS or FAIL - Run URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - Timestamp diff --git a/.github/workflows/smoke-copilot-arm.lock.yml b/.github/workflows/smoke-copilot-arm.lock.yml index aac516be885..21d935e0c47 100644 --- a/.github/workflows/smoke-copilot-arm.lock.yml +++ b/.github/workflows/smoke-copilot-arm.lock.yml @@ -792,6 +792,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-create-cross-repo-pr.lock.yml b/.github/workflows/smoke-create-cross-repo-pr.lock.yml index 87cdc4ca02e..12d169ff3d4 100644 --- a/.github/workflows/smoke-create-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-create-cross-repo-pr.lock.yml @@ -551,6 +551,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-crush.lock.yml b/.github/workflows/smoke-crush.lock.yml index 8f3977fb148..2a8195aba77 100644 --- a/.github/workflows/smoke-crush.lock.yml +++ b/.github/workflows/smoke-crush.lock.yml @@ -561,6 +561,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-gemini.lock.yml b/.github/workflows/smoke-gemini.lock.yml index 28c652be3e2..39edf38165f 100644 --- a/.github/workflows/smoke-gemini.lock.yml +++ b/.github/workflows/smoke-gemini.lock.yml @@ -602,6 +602,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-opencode.lock.yml b/.github/workflows/smoke-opencode.lock.yml index b89361209c0..87b2c2427a6 100644 --- a/.github/workflows/smoke-opencode.lock.yml +++ b/.github/workflows/smoke-opencode.lock.yml @@ -580,6 +580,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-pi.lock.yml b/.github/workflows/smoke-pi.lock.yml index ca93745f543..b0d9b1c7921 100644 --- a/.github/workflows/smoke-pi.lock.yml +++ b/.github/workflows/smoke-pi.lock.yml @@ -605,6 +605,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-project.lock.yml b/.github/workflows/smoke-project.lock.yml index 408d814ca54..a2a3507414a 100644 --- a/.github/workflows/smoke-project.lock.yml +++ b/.github/workflows/smoke-project.lock.yml @@ -581,6 +581,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-temporary-id.lock.yml b/.github/workflows/smoke-temporary-id.lock.yml index b77be79cd22..b6fea46993e 100644 --- a/.github/workflows/smoke-temporary-id.lock.yml +++ b/.github/workflows/smoke-temporary-id.lock.yml @@ -550,6 +550,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-update-cross-repo-pr.lock.yml b/.github/workflows/smoke-update-cross-repo-pr.lock.yml index 2874fc43237..7523e2f5bc6 100644 --- a/.github/workflows/smoke-update-cross-repo-pr.lock.yml +++ b/.github/workflows/smoke-update-cross-repo-pr.lock.yml @@ -581,6 +581,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml index 1f7ea62eca3..d58b785490e 100644 --- a/.github/workflows/smoke-workflow-call-with-inputs.lock.yml +++ b/.github/workflows/smoke-workflow-call-with-inputs.lock.yml @@ -531,6 +531,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/spec-librarian.lock.yml b/.github/workflows/spec-librarian.lock.yml index 100d3afb2a3..189e010ea69 100644 --- a/.github/workflows/spec-librarian.lock.yml +++ b/.github/workflows/spec-librarian.lock.yml @@ -507,6 +507,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index cc95315297b..65d12f5eb04 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -681,6 +681,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index ad0d8560453..f6507ea0ba7 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -571,6 +571,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/step-name-alignment.lock.yml b/.github/workflows/step-name-alignment.lock.yml index 0bad3ad6a55..367efabe4fc 100644 --- a/.github/workflows/step-name-alignment.lock.yml +++ b/.github/workflows/step-name-alignment.lock.yml @@ -481,6 +481,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index f3eadb62209..3f388c514a2 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -503,6 +503,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/test-workflow.lock.yml b/.github/workflows/test-workflow.lock.yml index 2dc64136ee4..e1f97a9fd9e 100644 --- a/.github/workflows/test-workflow.lock.yml +++ b/.github/workflows/test-workflow.lock.yml @@ -454,6 +454,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 87810deefdc..f7fb9c034f9 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -475,6 +475,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/workflow-health-manager.lock.yml b/.github/workflows/workflow-health-manager.lock.yml index 55751b4581e..f4b885e9b5d 100644 --- a/.github/workflows/workflow-health-manager.lock.yml +++ b/.github/workflows/workflow-health-manager.lock.yml @@ -520,6 +520,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/workflow-normalizer.lock.yml b/.github/workflows/workflow-normalizer.lock.yml index e64381fa149..f806d718144 100644 --- a/.github/workflows/workflow-normalizer.lock.yml +++ b/.github/workflows/workflow-normalizer.lock.yml @@ -526,6 +526,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/.github/workflows/workflow-skill-extractor.lock.yml b/.github/workflows/workflow-skill-extractor.lock.yml index b9d4dafb763..8b6f01b514f 100644 --- a/.github/workflows/workflow-skill-extractor.lock.yml +++ b/.github/workflows/workflow-skill-extractor.lock.yml @@ -495,6 +495,9 @@ jobs: "sanitize": true, "maxLength": 65000 }, + "fields": { + "type": "array" + }, "labels": { "type": "array", "itemType": "string", diff --git a/actions/setup/js/allowed_issue_fields.cjs b/actions/setup/js/allowed_issue_fields.cjs new file mode 100644 index 00000000000..1b1770f3df0 --- /dev/null +++ b/actions/setup/js/allowed_issue_fields.cjs @@ -0,0 +1,64 @@ +// @ts-check +/// + +const { ERR_VALIDATION } = require("./error_codes.cjs"); + +/** + * Parse allowed issue field names from config. + * @param {string[]|string|undefined} value + * @returns {string[]} + */ +function parseAllowedIssueFields(value) { + if (value == null || value === "") { + return []; + } + const raw = Array.isArray(value) ? value : String(value).split(","); + const uniqueFields = new Set(); + for (const item of raw) { + const normalized = String(item).trim(); + if (normalized) { + uniqueFields.add(normalized); + } + } + return [...uniqueFields]; +} + +/** + * Validate one issue field name against configured allowed-fields. + * @param {string} fieldName + * @param {string[]} allowedFields + * @returns {void} + */ +function validateAllowedIssueFieldName(fieldName, allowedFields) { + if (!fieldName) { + return; + } + if (!Array.isArray(allowedFields) || allowedFields.length === 0 || allowedFields.includes("*")) { + return; + } + const allowedFieldSet = new Set(allowedFields.map(field => field.toLowerCase())); + if (!allowedFieldSet.has(fieldName.toLowerCase())) { + throw new Error(`${ERR_VALIDATION}: issue field "${fieldName}" is not in the allowed-fields list: ${allowedFields.join(", ")}`); + } +} + +/** + * Validate requested issue fields against configured allowed-fields. + * @param {Array<{name: string, value: string|number}>} issueFields + * @param {string[]} allowedFields + * @returns {void} + */ +function validateAllowedIssueFields(issueFields, allowedFields) { + if (!Array.isArray(issueFields) || issueFields.length === 0) { + return; + } + for (const field of issueFields) { + validateAllowedIssueFieldName(field.name, allowedFields); + } +} + +module.exports = { + parseAllowedIssueFields, + validateAllowedIssueFieldName, + validateAllowedIssueFields, +}; diff --git a/actions/setup/js/create_issue.cjs b/actions/setup/js/create_issue.cjs index 92265e094b0..7dc674307ce 100644 --- a/actions/setup/js/create_issue.cjs +++ b/actions/setup/js/create_issue.cjs @@ -24,6 +24,7 @@ const { parseBoolTemplatable } = require("./templatable.cjs"); const { tryEnforceArrayLimit } = require("./limit_enforcement_helpers.cjs"); const { logStagedPreviewInfo } = require("./staged_preview.cjs"); const { isStagedMode } = require("./safe_output_helpers.cjs"); +const { parseAllowedIssueFields, validateAllowedIssueFields } = require("./allowed_issue_fields.cjs"); const { buildWorkflowRunUrl } = require("./workflow_metadata_helpers.cjs"); const { MAX_LABELS, MAX_ASSIGNEES } = require("./constants.cjs"); const { findAgent, getIssueDetails, assignAgentToIssue } = require("./assign_agent_helpers.cjs"); @@ -234,51 +235,6 @@ function normalizeIssueFields(fields) { }); } -/** - * Parse allowed issue field names from config. - * @param {string[]|string|undefined} value - * @returns {string[]} - */ -function parseAllowedIssueFields(value) { - if (value == null || value === "") { - return []; - } - const raw = Array.isArray(value) ? value : String(value).split(","); - const uniqueFields = new Set(); - for (const item of raw) { - const normalized = String(item).trim(); - if (normalized) { - uniqueFields.add(normalized); - } - } - return [...uniqueFields]; -} - -/** - * Validate requested issue fields against configured allowed-fields. - * @param {Array<{name: string, value: string|number}>} issueFields - * @param {string[]} allowedFields - * @returns {void} - */ -function validateAllowedIssueFields(issueFields, allowedFields) { - if (!Array.isArray(issueFields) || issueFields.length === 0) { - return; - } - if (!Array.isArray(allowedFields) || allowedFields.length === 0 || allowedFields.includes("*")) { - return; - } - - // We intentionally normalize to lowercase for comparisons because issue field names - // come from user-provided config/output and repository metadata, and should match - // even when case differs (e.g., "priority" vs "Priority"). - const allowedFieldSet = new Set(allowedFields.map(field => field.toLowerCase())); - for (const field of issueFields) { - if (!allowedFieldSet.has(field.name.toLowerCase())) { - throw new Error(`${ERR_VALIDATION}: issue field "${field.name}" is not in the allowed-fields list: ${allowedFields.join(", ")}`); - } - } -} - /** * Resolve issue node ID from issue number. * Queries GraphQL for the issue node ID required by field mutations. diff --git a/actions/setup/js/safe_output_handler_manager.cjs b/actions/setup/js/safe_output_handler_manager.cjs index e9fd0baae2f..6009bd68f60 100644 --- a/actions/setup/js/safe_output_handler_manager.cjs +++ b/actions/setup/js/safe_output_handler_manager.cjs @@ -57,6 +57,7 @@ const HANDLER_MAP = { mark_pull_request_as_ready_for_review: "./mark_pull_request_as_ready_for_review.cjs", hide_comment: "./hide_comment.cjs", set_issue_type: "./set_issue_type.cjs", + set_issue_field: "./set_issue_field.cjs", add_reviewer: "./add_reviewer.cjs", assign_milestone: "./assign_milestone.cjs", assign_to_user: "./assign_to_user.cjs", diff --git a/actions/setup/js/safe_outputs_tools.json b/actions/setup/js/safe_outputs_tools.json index 033c55fd48b..d2b12e12c36 100644 --- a/actions/setup/js/safe_outputs_tools.json +++ b/actions/setup/js/safe_outputs_tools.json @@ -1141,6 +1141,41 @@ "additionalProperties": false } }, + { + "name": "set_issue_field", + "description": "Set a single GitHub issue field by name and value. Use field_name for discovery by field label (for example, \"Priority\"), or provide field_node_id to skip discovery. Supports text, number, date (YYYY-MM-DD), and single-select fields (value must match an option name).", + "inputSchema": { + "type": "object", + "required": ["value"], + "properties": { + "issue_number": { + "type": ["number", "string"], + "description": "Issue number to set the field on. If omitted, targets the issue that triggered this workflow." + }, + "field_name": { + "type": "string", + "description": "Issue field name to set (e.g., \"Priority\", \"Severity\", \"Customer Impact\")." + }, + "field_node_id": { + "type": "string", + "description": "Optional GraphQL node ID of the issue field. Provide this to skip field-name discovery and set a field directly." + }, + "value": { + "type": "string", + "description": "Field value to set. For single-select fields, this must match an existing option name. For date fields, use YYYY-MM-DD." + }, + "secrecy": { + "type": "string", + "description": "Confidentiality level of the message content (e.g., \"public\", \"internal\", \"private\")." + }, + "integrity": { + "type": "string", + "description": "Trustworthiness level of the message source (e.g., \"low\", \"medium\", \"high\")." + } + }, + "additionalProperties": false + } + }, { "name": "update_project", "description": "Manage GitHub Projects: add issues/pull requests/draft issues, update item fields (status, priority, effort, dates), manage custom fields, and create project views. Use this to organize work by adding items to projects, updating field values, creating custom fields up-front, and setting up project views (table, board, roadmap).\n\nThree modes: (1) Add or update project items with custom field values; (2) Create project fields; (3) Create project views. This is the primary tool for ProjectOps automation - add items to projects, set custom fields for tracking, and organize project boards.", diff --git a/actions/setup/js/set_issue_field.cjs b/actions/setup/js/set_issue_field.cjs new file mode 100644 index 00000000000..398234a2f47 --- /dev/null +++ b/actions/setup/js/set_issue_field.cjs @@ -0,0 +1,408 @@ +// @ts-check +/// + +/** + * @typedef {import('./types/handler-factory').HandlerFactoryFunction} HandlerFactoryFunction + */ + +const { getErrorMessage } = require("./error_helpers.cjs"); +const { resolveTargetRepoConfig, resolveAndValidateRepo } = require("./repo_helpers.cjs"); +const { logStagedPreviewInfo } = require("./staged_preview.cjs"); +const { isStagedMode } = require("./safe_output_helpers.cjs"); +const { createAuthenticatedGitHubClient } = require("./handler_auth.cjs"); +const { parseAllowedIssueFields, validateAllowedIssueFieldName } = require("./allowed_issue_fields.cjs"); +const { loadTemporaryIdMapFromResolved, resolveRepoIssueTarget } = require("./temporary_id.cjs"); + +/** @type {string} Safe output type handled by this module */ +const HANDLER_TYPE = "set_issue_field"; + +/** + * Fetches the node ID of an issue for use in GraphQL mutations. + * @param {Object} githubClient - Authenticated GitHub client + * @param {string} owner - Repository owner + * @param {string} repo - Repository name + * @param {number} issueNumber - Issue number + * @returns {Promise} Issue node ID + */ +async function getIssueNodeId(githubClient, owner, repo, issueNumber) { + const { data } = await githubClient.rest.issues.get({ + owner, + repo, + issue_number: issueNumber, + }); + return data.node_id; +} + +/** + * Fetches available issue fields for the repository/owner. + * @param {Object} githubClient - Authenticated GitHub client + * @param {string} owner - Repository owner + * @param {string} repo - Repository name + * @returns {Promise}>>} + */ +async function fetchIssueFields(githubClient, owner, repo) { + try { + const result = await githubClient.graphql( + `query($owner: String!, $repo: String!) { + repository(owner: $owner, name: $repo) { + issueFields(first: 100) { + nodes { + __typename + id + name + ... on IssueFieldSingleSelect { + options { + id + name + } + } + } + } + owner { + __typename + ... on Organization { + issueFields(first: 100) { + nodes { + __typename + id + name + ... on IssueFieldSingleSelect { + options { + id + name + } + } + } + } + } + ... on User { + issueFields(first: 100) { + nodes { + __typename + id + name + ... on IssueFieldSingleSelect { + options { + id + name + } + } + } + } + } + } + } + }`, + { owner, repo } + ); + + const repoFields = result?.repository?.issueFields?.nodes ?? []; + if (repoFields.length > 0) { + return repoFields; + } + + const ownerFields = result?.repository?.owner?.issueFields?.nodes ?? []; + return ownerFields; + } catch (error) { + if (typeof core !== "undefined") { + core.debug(`Could not fetch issue fields (may not be enabled): ${error instanceof Error ? error.message : String(error)}`); + } + return []; + } +} + +/** + * Builds a field update payload based on field type and value. + * @param {{__typename?: string, name?: string, options?: Array<{id: string, name: string}>}|null} field + * @param {string} rawValue + * @returns {{success: true, update: Record} | {success: false, error: string}} + */ +function buildFieldUpdatePayload(field, rawValue) { + const fieldType = field?.__typename || "IssueFieldText"; + + if (fieldType === "IssueFieldSingleSelect") { + const options = field?.options ?? []; + const selected = options.find(option => option.name.toLowerCase() === rawValue.toLowerCase()); + if (!selected) { + const availableOptions = options.map(option => option.name).join(", "); + return { + success: false, + error: `Invalid value ${JSON.stringify(rawValue)} for issue field ${JSON.stringify(field?.name || "(unknown)")}. Available options: ${availableOptions}. Use the exact option name or pass field_node_id to bypass name discovery.`, + }; + } + return { + success: true, + update: { + singleSelectOptionId: selected.id, + }, + }; + } + + if (fieldType === "IssueFieldNumber") { + const parsed = Number(rawValue); + if (!Number.isFinite(parsed)) { + return { + success: false, + error: `Invalid value ${JSON.stringify(rawValue)} for numeric issue field ${JSON.stringify(field?.name || "(unknown)")}. Provide a numeric value (example: "3.14").`, + }; + } + return { + success: true, + update: { + numberValue: parsed, + }, + }; + } + + if (fieldType === "IssueFieldDate") { + if (!/^\d{4}-\d{2}-\d{2}$/.test(rawValue)) { + return { + success: false, + error: `Invalid value ${JSON.stringify(rawValue)} for date issue field ${JSON.stringify(field?.name || "(unknown)")}. Use YYYY-MM-DD format.`, + }; + } + return { + success: true, + update: { + dateValue: rawValue, + }, + }; + } + + return { + success: true, + update: { + textValue: rawValue, + }, + }; +} + +/** + * Sets one issue field via GraphQL mutation. + * @param {Object} githubClient - Authenticated GitHub client + * @param {string} issueNodeId - GraphQL node ID of the issue + * @param {{fieldId: string, singleSelectOptionId?: string, numberValue?: number, dateValue?: string, textValue?: string}} fieldUpdate + * @returns {Promise} + */ +async function setIssueFieldValue(githubClient, issueNodeId, fieldUpdate) { + await githubClient.graphql( + `mutation($issueId: ID!, $issueFields: [IssueFieldCreateOrUpdateInput!]!) { + setIssueFieldValue(input: { issueId: $issueId, issueFields: $issueFields }) { + issue { + id + } + } + }`, + { + issueId: issueNodeId, + issueFields: [fieldUpdate], + } + ); +} + +/** + * Main handler factory for set_issue_field. + * @type {HandlerFactoryFunction} + */ +async function main(config = {}) { + const maxCount = config.max || 5; + const allowedIssueFields = parseAllowedIssueFields(config.allowed_fields); + const { defaultTargetRepo, allowedRepos } = resolveTargetRepoConfig(config); + const githubClient = await createAuthenticatedGitHubClient(config); + const isStaged = isStagedMode(config); + + core.info(`Set issue field configuration: max=${maxCount}`); + core.info(`Default target repo: ${defaultTargetRepo}`); + if (allowedRepos.size > 0) { + core.info(`Allowed repos: ${Array.from(allowedRepos).join(", ")}`); + } + if (allowedIssueFields.length > 0 && !allowedIssueFields.includes("*")) { + core.info(`Allowed issue fields: ${allowedIssueFields.join(", ")}`); + } + + let processedCount = 0; + + return async function handleSetIssueField(message, resolvedTemporaryIds) { + if (processedCount >= maxCount) { + core.warning(`Skipping set_issue_field: max count of ${maxCount} reached`); + return { + success: false, + error: `Max count of ${maxCount} reached`, + }; + } + + processedCount++; + + const item = message; + const temporaryIdMap = loadTemporaryIdMapFromResolved(resolvedTemporaryIds); + + const repoResult = resolveAndValidateRepo(item, defaultTargetRepo, allowedRepos, "issue"); + if (!repoResult.success) { + core.warning(`Skipping set_issue_field: ${repoResult.error}`); + return { + success: false, + error: repoResult.error, + }; + } + const { repo: itemRepo, repoParts } = repoResult; + core.info(`Target repository: ${itemRepo}`); + + let issueNumber; + if (item.issue_number !== undefined && item.issue_number !== null) { + const resolvedTarget = resolveRepoIssueTarget(item.issue_number, temporaryIdMap, repoParts.owner, repoParts.repo); + + if (resolvedTarget.wasTemporaryId && !resolvedTarget.resolved) { + core.info(`Deferring set_issue_field: unresolved temporary ID (${item.issue_number})`); + return { + success: false, + deferred: true, + error: resolvedTarget.errorMessage || `Unresolved temporary ID: ${item.issue_number}`, + }; + } + + if (resolvedTarget.errorMessage || !resolvedTarget.resolved) { + core.warning(`Invalid issue_number: ${item.issue_number}`); + return { + success: false, + error: `Invalid issue_number: ${item.issue_number}`, + }; + } + + issueNumber = resolvedTarget.resolved.number; + core.info(`Resolved issue number: #${issueNumber}`); + } else { + const contextIssueNumber = context.payload?.issue?.number; + if (!contextIssueNumber) { + core.warning("No issue_number provided and not in issue context"); + return { + success: false, + error: "No issue number available", + }; + } + issueNumber = contextIssueNumber; + } + + if (item.value === undefined || item.value === null) { + return { + success: false, + error: "Missing required value. Provide the issue field value as a string.", + }; + } + + const fieldName = typeof item.field_name === "string" ? item.field_name.trim() : ""; + let fieldNodeId = typeof item.field_node_id === "string" ? item.field_node_id.trim() : ""; + const value = String(item.value); + + if (!fieldName && !fieldNodeId) { + return { + success: false, + error: "Missing field identifier. Provide field_name or field_node_id.", + }; + } + + if (isStaged) { + const description = `Would set issue field ${JSON.stringify(fieldName || fieldNodeId)} to ${JSON.stringify(value)} on issue #${issueNumber} in ${itemRepo}`; + logStagedPreviewInfo(description); + return { + success: true, + staged: true, + previewInfo: { + issue_number: issueNumber, + field_name: fieldName, + field_node_id: fieldNodeId, + value, + repo: itemRepo, + }, + }; + } + + try { + const { owner, repo } = repoParts; + const issueNodeId = await getIssueNodeId(githubClient, owner, repo, issueNumber); + + /** @type {{id: string, name: string, __typename?: string, options?: Array<{id: string, name: string}>}|null} */ + let resolvedField = null; + + const availableFields = await fetchIssueFields(githubClient, owner, repo); + + if (availableFields.length === 0) { + const error = "No issue fields were discovered for this repository. Verify issue fields are enabled and visible to this token."; + core.error(error); + return { success: false, error }; + } + + let resolvedFieldByName = null; + if (fieldName) { + resolvedFieldByName = availableFields.find(field => field.name.toLowerCase() === fieldName.toLowerCase()) || null; + if (!resolvedFieldByName) { + const availableNames = availableFields.map(field => field.name).join(", "); + const error = `Issue field ${JSON.stringify(fieldName)} not found. Available fields: ${availableNames}. Use a listed field_name or provide field_node_id to bypass discovery.`; + core.error(error); + return { success: false, error }; + } + } + + if (fieldNodeId) { + resolvedField = availableFields.find(field => field.id === fieldNodeId) || null; + } + + if (!fieldNodeId && resolvedFieldByName) { + fieldNodeId = resolvedFieldByName.id; + resolvedField = resolvedFieldByName; + } + + if (fieldNodeId && !resolvedField) { + const availableFieldsSummary = availableFields.map(field => `${field.name} (${field.id})`).join(", "); + const error = `Issue field ID ${JSON.stringify(fieldNodeId)} not found. Available fields: ${availableFieldsSummary}. Use a valid field_node_id or provide field_name.`; + core.error(error); + return { success: false, error }; + } + + const hasConflictingFieldIdentifiers = Boolean(fieldNodeId && fieldName && resolvedFieldByName && resolvedField && resolvedFieldByName.id !== resolvedField.id); + if (hasConflictingFieldIdentifiers) { + const error = `field_name ${JSON.stringify(fieldName)} resolves to ${JSON.stringify(resolvedFieldByName.id)}, but field_node_id was ${JSON.stringify(fieldNodeId)}. Provide only one identifier or make them match.`; + core.error(error); + return { success: false, error }; + } + + if (!fieldNodeId) { + const error = "Could not resolve field_node_id. Provide a valid field_name or explicit field_node_id."; + core.error(error); + return { success: false, error }; + } + + const resolvedFieldName = resolvedField?.name || fieldName; + validateAllowedIssueFieldName(resolvedFieldName, allowedIssueFields); + + const fieldUpdateResult = buildFieldUpdatePayload(resolvedField, value); + if (!fieldUpdateResult.success) { + core.error(fieldUpdateResult.error); + return { success: false, error: fieldUpdateResult.error }; + } + + const fieldUpdate = { + fieldId: fieldNodeId, + ...fieldUpdateResult.update, + }; + + await setIssueFieldValue(githubClient, issueNodeId, fieldUpdate); + + core.info(`Successfully set issue field ${JSON.stringify(fieldName || fieldNodeId)} to ${JSON.stringify(value)} on issue #${issueNumber}`); + + return { + success: true, + issue_number: issueNumber, + field_name: fieldName, + field_node_id: fieldNodeId, + value, + repo: itemRepo, + }; + } catch (error) { + const errorMessage = getErrorMessage(error); + core.error(`Failed to set issue field on issue #${issueNumber}: ${errorMessage}`); + return { success: false, error: errorMessage }; + } + }; +} + +module.exports = { main }; diff --git a/actions/setup/js/set_issue_field.test.cjs b/actions/setup/js/set_issue_field.test.cjs new file mode 100644 index 00000000000..eb3f32cccef --- /dev/null +++ b/actions/setup/js/set_issue_field.test.cjs @@ -0,0 +1,243 @@ +import { describe, it, expect, beforeEach, vi } from "vitest"; + +const mockCore = { + debug: vi.fn(), + info: vi.fn(), + warning: vi.fn(), + error: vi.fn(), + setFailed: vi.fn(), + setOutput: vi.fn(), + summary: { + addRaw: vi.fn().mockReturnThis(), + write: vi.fn().mockResolvedValue(), + }, +}; + +const mockContext = { + repo: { + owner: "test-owner", + repo: "test-repo", + }, + eventName: "issues", + payload: { + issue: { + number: 123, + }, + }, +}; + +const mockGraphql = vi.fn(); + +const mockGithub = { + rest: { + issues: { + get: vi.fn(), + }, + }, + graphql: mockGraphql, +}; + +global.core = mockCore; +global.context = mockContext; +global.github = mockGithub; + +describe("set_issue_field (Handler Factory Architecture)", () => { + let handler; + + const issueNodeId = "I_kwDOABCD123456"; + const textFieldId = "IF_kwDO_text"; + const statusFieldId = "IF_kwDO_status"; + const effortFieldId = "IF_kwDO_direct"; + + const mockIssueFieldsQuery = { + repository: { + issueFields: { + nodes: [ + { id: textFieldId, name: "Customer Impact", __typename: "IssueFieldText" }, + { + id: statusFieldId, + name: "Status", + __typename: "IssueFieldSingleSelect", + options: [ + { id: "IFOPT_open", name: "Open" }, + { id: "IFOPT_closed", name: "Closed" }, + ], + }, + { id: effortFieldId, name: "Effort", __typename: "IssueFieldNumber" }, + ], + }, + owner: { + __typename: "Organization", + issueFields: { + nodes: [], + }, + }, + }, + }; + + beforeEach(async () => { + vi.clearAllMocks(); + + mockGithub.rest.issues.get.mockResolvedValue({ data: { node_id: issueNodeId } }); + mockGraphql.mockImplementation(query => { + if (query.includes("issueFields")) { + return Promise.resolve(mockIssueFieldsQuery); + } + if (query.includes("setIssueFieldValue")) { + return Promise.resolve({ setIssueFieldValue: { issue: { id: issueNodeId } } }); + } + return Promise.resolve({}); + }); + + const { main } = require("./set_issue_field.cjs"); + handler = await main({ max: 5 }); + }); + + it("should return a function from main()", async () => { + const { main } = require("./set_issue_field.cjs"); + const result = await main({}); + expect(typeof result).toBe("function"); + }); + + it("should set issue text field successfully", async () => { + const message = { + type: "set_issue_field", + issue_number: 42, + field_name: "Customer Impact", + value: "High", + }; + + const result = await handler(message, {}); + + expect(result.success).toBe(true); + expect(result.issue_number).toBe(42); + expect(result.field_name).toBe("Customer Impact"); + expect(result.field_node_id).toBe(textFieldId); + expect(mockGraphql).toHaveBeenCalledWith( + expect.stringContaining("setIssueFieldValue"), + expect.objectContaining({ + issueId: issueNodeId, + issueFields: [expect.objectContaining({ fieldId: textFieldId, textValue: "High" })], + }) + ); + }); + + it("should set single-select field by option name", async () => { + const message = { + type: "set_issue_field", + issue_number: 42, + field_name: "Status", + value: "Closed", + }; + + const result = await handler(message, {}); + + expect(result.success).toBe(true); + expect(mockGraphql).toHaveBeenCalledWith( + expect.stringContaining("setIssueFieldValue"), + expect.objectContaining({ + issueFields: [expect.objectContaining({ fieldId: statusFieldId, singleSelectOptionId: "IFOPT_closed" })], + }) + ); + }); + + it("should error with actionable message for unknown field name", async () => { + const message = { + type: "set_issue_field", + issue_number: 42, + field_name: "Unknown Field", + value: "foo", + }; + + const result = await handler(message, {}); + + expect(result.success).toBe(false); + expect(result.error).toContain("not found"); + expect(result.error).toContain("Available fields"); + expect(result.error).toContain("field_node_id"); + }); + + it("should error with actionable message for invalid single-select value", async () => { + const message = { + type: "set_issue_field", + issue_number: 42, + field_name: "Status", + value: "Invalid", + }; + + const result = await handler(message, {}); + + expect(result.success).toBe(false); + expect(result.error).toContain("Invalid value"); + expect(result.error).toContain("Available options"); + }); + + it("should resolve field type when field_node_id is provided", async () => { + const message = { + type: "set_issue_field", + issue_number: 42, + field_node_id: effortFieldId, + value: "3.5", + }; + + const result = await handler(message, {}); + + expect(result.success).toBe(true); + expect(result.field_node_id).toBe(effortFieldId); + expect(mockGraphql).toHaveBeenCalledWith(expect.stringContaining("repository(owner"), expect.anything()); + expect(mockGraphql).toHaveBeenCalledWith( + expect.stringContaining("setIssueFieldValue"), + expect.objectContaining({ + issueFields: [expect.objectContaining({ fieldId: effortFieldId, numberValue: 3.5 })], + }) + ); + }); + + it("should error when provided field_node_id is unknown", async () => { + const message = { + type: "set_issue_field", + issue_number: 42, + field_node_id: "IF_kwDO_missing", + value: "3.5", + }; + + const result = await handler(message, {}); + + expect(result.success).toBe(false); + expect(result.error).toContain("not found"); + expect(result.error).toContain("Available fields"); + }); + + it("should enforce configured allowed-fields list", async () => { + const { main } = require("./set_issue_field.cjs"); + const restrictedHandler = await main({ + allowed_fields: ["Status"], + }); + + const result = await restrictedHandler({ + type: "set_issue_field", + issue_number: 42, + field_name: "Customer Impact", + value: "High", + }); + + expect(result.success).toBe(false); + expect(result.error).toContain('issue field "Customer Impact" is not in the allowed-fields list: Status'); + }); + + it("should allow any field when allowed-fields includes wildcard", async () => { + const { main } = require("./set_issue_field.cjs"); + const unrestrictedHandler = await main({ + allowed_fields: ["*"], + }); + + const result = await unrestrictedHandler({ + type: "set_issue_field", + issue_number: 42, + field_name: "Customer Impact", + value: "High", + }); + + expect(result.success).toBe(true); + }); +}); diff --git a/actions/setup/js/types/safe-outputs.d.ts b/actions/setup/js/types/safe-outputs.d.ts index 4e102871ddd..4666139befd 100644 --- a/actions/setup/js/types/safe-outputs.d.ts +++ b/actions/setup/js/types/safe-outputs.d.ts @@ -324,6 +324,21 @@ interface SetIssueTypeItem extends BaseSafeOutputItem { issue_number?: number | string; } +/** + * JSONL item for setting a custom issue field value + */ +interface SetIssueFieldItem extends BaseSafeOutputItem { + type: "set_issue_field"; + /** Issue field name to set (e.g., "Priority", "Severity"). */ + field_name?: string; + /** Optional issue field GraphQL node ID to skip name-based discovery. */ + field_node_id?: string; + /** Field value to set. For single-select fields, provide the option name. */ + value: string; + /** Issue number (optional - uses triggering issue if not provided) */ + issue_number?: number | string; +} + /** * JSONL item for assigning a GitHub Copilot coding agent to an issue or project item */ @@ -455,6 +470,7 @@ type SafeOutputItem = | UploadAssetItem | AssignMilestoneItem | SetIssueTypeItem + | SetIssueFieldItem | AssignToAgentItem | UpdateReleaseItem | NoOpItem @@ -498,6 +514,7 @@ export { UploadAssetItem, AssignMilestoneItem, SetIssueTypeItem, + SetIssueFieldItem, AssignToAgentItem, UpdateReleaseItem, NoOpItem, diff --git a/docs/src/content/docs/reference/glossary.md b/docs/src/content/docs/reference/glossary.md index 26961c68634..5257051dd7c 100644 --- a/docs/src/content/docs/reference/glossary.md +++ b/docs/src/content/docs/reference/glossary.md @@ -273,6 +273,10 @@ A mandatory safe output signal that agents emit when a task cannot be completed A safe output capability for setting or clearing the GitHub issue type on existing issues. The agent calls `set_issue_type` to assign a named type (e.g., `Bug`, `Feature`) to an issue. An `allowed` list restricts which types the agent may set; omitting it permits any type. Passing an empty string clears the current type. Supports cross-repository targeting via `target-repo` and `allowed-repos`. Configured via `set-issue-type:` in `safe-outputs`. +### Set Issue Field (`set-issue-field:`) + +A safe output capability for setting one issue field value on existing issues. The agent calls `set_issue_field` with `value` and either `field_name` (for discovery by field label) or `field_node_id` (to skip discovery). Unknown field names return actionable errors listing available fields and suggesting explicit IDs. Supports optional `allowed-fields` restrictions (including `["*"]` wildcard) and cross-repository targeting via `target-repo` and `allowed-repos`. Configured via `set-issue-field:` in `safe-outputs`. + ### Parameterized Safe-Output Fields A pattern for `workflow_call` reuse where safe-output policy and list fields accept GitHub Actions expression strings (e.g., `${{ inputs.protected-files-policy }}`) in addition to literal values. At compile time the compiler detects the `${{...}}` form and passes it through unchanged; GitHub Actions evaluates the expression at runtime before the handler executes. Enum-valued policy fields such as `protected-files` and `patch-format` validate literal values at compile time but defer expression-based values to runtime (failing closed on unrecognized input). List-valued fields such as `labels`, `allowed-repos`, and `allowed-base-branches` accept either a YAML array or a single expression string. This enables a single reusable workflow to serve callers with different constraint configurations without duplicating files. See [Safe Outputs (Pull Requests)](/gh-aw/reference/safe-outputs-pull-requests/#parameterizing-policy-fields-in-reusable-workflows). diff --git a/docs/src/content/docs/reference/safe-outputs.md b/docs/src/content/docs/reference/safe-outputs.md index 2bfd9afa720..f47dc7a41a5 100644 --- a/docs/src/content/docs/reference/safe-outputs.md +++ b/docs/src/content/docs/reference/safe-outputs.md @@ -55,6 +55,7 @@ The agent requests issue creation; a separate job with `issues: write` creates i - [**Assign to User**](#assign-to-user-assign-to-user) (`assign-to-user`) - Assign users to issues (max: 1) - [**Unassign from User**](#unassign-from-user-unassign-from-user) (`unassign-from-user`) - Remove user assignments from issues or PRs (max: 1) - [**Set Issue Type**](#set-issue-type-set-issue-type) (`set-issue-type`) - Set or clear the type of GitHub issues (max: 5) +- [**Set Issue Field**](#set-issue-field-set-issue-field) (`set-issue-field`) - Set one issue field value by name/value (max: 5) ### Projects, Releases & Assets @@ -436,6 +437,23 @@ safe-outputs: Agent calls `set_issue_type` with `issue_type` (the type name) and optionally `issue_number`. Omitting `issue_number` targets the triggering issue. +### Set Issue Field (`set-issue-field:`) + +Sets one issue field value by field name and value, without needing the broader `update-issue` tool path. + +```yaml wrap +safe-outputs: + set-issue-field: # null enables with defaults + max: 5 # max operations (default: 5) + target: "triggering" # "triggering" (default), "*", or issue number + allowed-fields: [Priority, Iteration] # restrict issue fields this workflow may set + target-repo: "owner/repo" # cross-repository + allowed-repos: ["owner/repo1"] # additional allowed repositories + github-token: ${{ secrets.SOME_CUSTOM_TOKEN }} +``` + +Agent calls `set_issue_field` with `value`, and either `field_name` (preferred) or `field_node_id`. It can also pass `issue_number`; if omitted, the triggering issue is targeted. + ### Project Creation (`create-project:`) Creates new GitHub Projects V2 boards. Requires a write-capable PAT or GitHub App token ([project token authentication](/gh-aw/patterns/project-ops/#project-token-authentication)); default `GITHUB_TOKEN` lacks Projects v2 access. Supports optional view configuration to create custom project views at creation time. diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json index e21733dd1e7..19a0279e517 100644 --- a/pkg/parser/schemas/main_workflow_schema.json +++ b/pkg/parser/schemas/main_workflow_schema.json @@ -4761,7 +4761,7 @@ }, "safe-outputs": { "type": "object", - "$comment": "Required if workflow creates or modifies GitHub resources. Operations requiring safe-outputs: autofix-code-scanning-alert, add-comment, add-labels, add-reviewer, assign-milestone, assign-to-agent, assign-to-user, close-discussion, close-issue, close-pull-request, create-agent-session, create-agent-task (deprecated, use create-agent-session), create-code-scanning-alert, create-discussion, create-issue, create-project, create-project-status-update, create-pull-request, create-pull-request-review-comment, dispatch-workflow, hide-comment, link-sub-issue, mark-pull-request-as-ready-for-review, merge-pull-request, missing-data, missing-tool, noop, push-to-pull-request-branch, remove-labels, reply-to-pull-request-review-comment, resolve-pull-request-review-thread, set-issue-type, submit-pull-request-review, threat-detection, unassign-from-user, update-discussion, update-issue, update-project, update-pull-request, update-release, upload-artifact, upload-asset. See documentation for complete details.", + "$comment": "Required if workflow creates or modifies GitHub resources. Operations requiring safe-outputs: autofix-code-scanning-alert, add-comment, add-labels, add-reviewer, assign-milestone, assign-to-agent, assign-to-user, close-discussion, close-issue, close-pull-request, create-agent-session, create-agent-task (deprecated, use create-agent-session), create-code-scanning-alert, create-discussion, create-issue, create-project, create-project-status-update, create-pull-request, create-pull-request-review-comment, dispatch-workflow, hide-comment, link-sub-issue, mark-pull-request-as-ready-for-review, merge-pull-request, missing-data, missing-tool, noop, push-to-pull-request-branch, remove-labels, reply-to-pull-request-review-comment, resolve-pull-request-review-thread, set-issue-field, set-issue-type, submit-pull-request-review, threat-detection, unassign-from-user, update-discussion, update-issue, update-project, update-pull-request, update-release, upload-artifact, upload-asset. See documentation for complete details.", "description": "Safe output processing configuration that automatically creates GitHub issues, comments, and pull requests from AI workflow output without requiring write permissions in the main job", "examples": [ { @@ -7747,6 +7747,67 @@ ], "description": "Enable AI agents to set or clear the type of GitHub issues. Use an empty string to clear the current type." }, + "set-issue-field": { + "oneOf": [ + { + "type": "null", + "description": "Null configuration enables set-issue-field with defaults." + }, + { + "type": "object", + "description": "Configuration for setting one issue field value by field name and value.", + "properties": { + "max": { + "description": "Optional maximum number of set-issue-field operations (default: 5). Supports integer or GitHub Actions expression (e.g. '${{ inputs.max }}').", + "oneOf": [ + { + "type": "integer", + "minimum": 1 + }, + { + "type": "string", + "pattern": "^\\$\\{\\{.*\\}\\}$", + "description": "GitHub Actions expression that resolves to an integer at runtime" + } + ] + }, + "target": { + "type": "string", + "description": "Target for issue field updates: 'triggering' (default), '*' (any issue), or explicit issue number" + }, + "allowed-fields": { + "type": "array", + "description": "Optional list of issue field names that can be modified by set-issue-field. If omitted or empty, any issue field may be set. Use ['*'] to explicitly allow all.", + "items": { + "type": "string" + } + }, + "target-repo": { + "type": "string", + "description": "Target repository in format 'owner/repo' for cross-repository issue field updates. Takes precedence over trial target repo settings." + }, + "allowed-repos": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of additional repositories in format 'owner/repo' where issue fields can be updated. When specified, the agent can use a 'repo' field in the output to specify which repository to target. The target repository (current or target-repo) is always implicitly allowed." + }, + "github-token": { + "$ref": "#/$defs/github_token", + "description": "GitHub token to use for this specific output type. Overrides global github-token if specified." + }, + "staged": { + "type": "boolean", + "description": "If true, emit step summary messages instead of making GitHub API calls for this specific output type (preview mode)", + "examples": [true, false] + } + }, + "additionalProperties": false + } + ], + "description": "Enable AI agents to set one issue field value by field name and value." + }, "dispatch-workflow": { "oneOf": [ { diff --git a/pkg/workflow/compiler_safe_outputs_config_test.go b/pkg/workflow/compiler_safe_outputs_config_test.go index 453c96f03c5..bad798f3dbb 100644 --- a/pkg/workflow/compiler_safe_outputs_config_test.go +++ b/pkg/workflow/compiler_safe_outputs_config_test.go @@ -667,6 +667,21 @@ func TestAddHandlerManagerConfigEnvVar(t *testing.T) { checkJSON: true, expectedKeys: []string{"set_issue_type"}, }, + { + name: "set_issue_field config", + safeOutputs: &SafeOutputsConfig{ + SetIssueField: &SetIssueFieldConfig{ + BaseSafeOutputConfig: BaseSafeOutputConfig{ + Max: strPtr("1"), + }, + }, + }, + checkContains: []string{ + "GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG", + }, + checkJSON: true, + expectedKeys: []string{"set_issue_field"}, + }, { name: "noop config", safeOutputs: &SafeOutputsConfig{ diff --git a/pkg/workflow/compiler_safe_outputs_handlers.go b/pkg/workflow/compiler_safe_outputs_handlers.go index a62b0a7e7bd..92dbb2ca749 100644 --- a/pkg/workflow/compiler_safe_outputs_handlers.go +++ b/pkg/workflow/compiler_safe_outputs_handlers.go @@ -839,4 +839,23 @@ var handlerRegistry = map[string]handlerBuilder{ } return config }, + "set_issue_field": func(cfg *SafeOutputsConfig) map[string]any { + if cfg.SetIssueField == nil { + return nil + } + c := cfg.SetIssueField + config := newHandlerConfigBuilder(). + AddTemplatableInt("max", c.Max). + AddStringSlice("allowed_fields", c.AllowedFields). + AddIfNotEmpty("target", c.Target). + AddIfNotEmpty("target-repo", c.TargetRepoSlug). + AddStringSlice("allowed_repos", c.AllowedRepos). + AddIfNotEmpty("github-token", c.GitHubToken). + AddIfTrue("staged", c.Staged). + Build() + if len(config) == 0 { + return make(map[string]any) + } + return config + }, } diff --git a/pkg/workflow/compiler_safe_outputs_job.go b/pkg/workflow/compiler_safe_outputs_job.go index ea60e4ad313..c5cbaac233a 100644 --- a/pkg/workflow/compiler_safe_outputs_job.go +++ b/pkg/workflow/compiler_safe_outputs_job.go @@ -196,6 +196,7 @@ func (c *Compiler) buildSafeOutputsHandlerOutputsAndActionSteps(data *WorkflowDa data.SafeOutputs.MarkPullRequestAsReadyForReview != nil || data.SafeOutputs.HideComment != nil || data.SafeOutputs.SetIssueType != nil || + data.SafeOutputs.SetIssueField != nil || data.SafeOutputs.DispatchWorkflow != nil || data.SafeOutputs.CallWorkflow != nil || data.SafeOutputs.CreateCodeScanningAlerts != nil || diff --git a/pkg/workflow/compiler_safe_outputs_job_test.go b/pkg/workflow/compiler_safe_outputs_job_test.go index be6d95ca571..9db27dbc1fa 100644 --- a/pkg/workflow/compiler_safe_outputs_job_test.go +++ b/pkg/workflow/compiler_safe_outputs_job_test.go @@ -59,6 +59,15 @@ func TestBuildConsolidatedSafeOutputsJob(t *testing.T) { checkPermissions: true, expectedPerms: []string{"contents: read", "issues: write", "discussions: write"}, }, + { + name: "set issue field only", + safeOutputs: &SafeOutputsConfig{ + SetIssueField: &SetIssueFieldConfig{}, + }, + expectedJobName: "safe_outputs", + checkPermissions: true, + expectedPerms: []string{"contents: read", "issues: write"}, + }, { name: "create pull requests with patch", safeOutputs: &SafeOutputsConfig{ diff --git a/pkg/workflow/compiler_types.go b/pkg/workflow/compiler_types.go index d792d9760e7..74c58ddee5f 100644 --- a/pkg/workflow/compiler_types.go +++ b/pkg/workflow/compiler_types.go @@ -602,6 +602,7 @@ type SafeOutputsConfig struct { LinkSubIssue *LinkSubIssueConfig `yaml:"link-sub-issue,omitempty"` // Link issues as sub-issues HideComment *HideCommentConfig `yaml:"hide-comment,omitempty"` // Hide comments SetIssueType *SetIssueTypeConfig `yaml:"set-issue-type,omitempty"` // Set the type of an issue (empty string clears the type) + SetIssueField *SetIssueFieldConfig `yaml:"set-issue-field,omitempty"` // Set a single issue field value by name/value DispatchWorkflow *DispatchWorkflowConfig `yaml:"dispatch-workflow,omitempty"` // Dispatch workflow_dispatch events to other workflows DispatchRepository *DispatchRepositoryConfig `yaml:"dispatch_repository,omitempty"` // Dispatch repository_dispatch events to external repositories CallWorkflow *CallWorkflowConfig `yaml:"call-workflow,omitempty"` // Call reusable workflows via workflow_call fan-out diff --git a/pkg/workflow/imports.go b/pkg/workflow/imports.go index 8042aa8da23..8a99311ac38 100644 --- a/pkg/workflow/imports.go +++ b/pkg/workflow/imports.go @@ -398,6 +398,8 @@ func hasSafeOutputType(config *SafeOutputsConfig, key string) bool { return config.HideComment != nil case "set-issue-type": return config.SetIssueType != nil + case "set-issue-field": + return config.SetIssueField != nil case "dispatch-workflow": return config.DispatchWorkflow != nil case "call-workflow": @@ -552,6 +554,9 @@ func mergeSafeOutputConfig(result *SafeOutputsConfig, config map[string]any, c * if result.SetIssueType == nil && importedConfig.SetIssueType != nil { result.SetIssueType = importedConfig.SetIssueType } + if result.SetIssueField == nil && importedConfig.SetIssueField != nil { + result.SetIssueField = importedConfig.SetIssueField + } if result.DispatchWorkflow == nil && importedConfig.DispatchWorkflow != nil { result.DispatchWorkflow = importedConfig.DispatchWorkflow } diff --git a/pkg/workflow/js/safe_outputs_tools.json b/pkg/workflow/js/safe_outputs_tools.json index 9836f6f5be9..ea91de1d0a1 100644 --- a/pkg/workflow/js/safe_outputs_tools.json +++ b/pkg/workflow/js/safe_outputs_tools.json @@ -1285,6 +1285,46 @@ "additionalProperties": false } }, + { + "name": "set_issue_field", + "description": "Set a single GitHub issue field by name and value. Use field_name for discovery by field label (for example, \"Priority\"), or provide field_node_id to skip discovery. Supports text, number, date (YYYY-MM-DD), and single-select fields (value must match an option name).", + "inputSchema": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "issue_number": { + "type": [ + "number", + "string" + ], + "description": "Issue number to set the field on. If omitted, targets the issue that triggered this workflow." + }, + "field_name": { + "type": "string", + "description": "Issue field name to set (e.g., \"Priority\", \"Severity\", \"Customer Impact\")." + }, + "field_node_id": { + "type": "string", + "description": "Optional GraphQL node ID of the issue field. Provide this to skip field-name discovery and set a field directly." + }, + "value": { + "type": "string", + "description": "Field value to set. For single-select fields, this must match an existing option name. For date fields, use YYYY-MM-DD." + }, + "secrecy": { + "type": "string", + "description": "Confidentiality level of the message content (e.g., \"public\", \"internal\", \"private\")." + }, + "integrity": { + "type": "string", + "description": "Trustworthiness level of the message source (e.g., \"low\", \"medium\", \"high\")." + } + }, + "additionalProperties": false + } + }, { "name": "update_project", "description": "Manage GitHub Projects: add issues/pull requests/draft issues, update item fields (status, priority, effort, dates), manage custom fields, and create project views. Use this to organize work by adding items to projects, updating field values, creating custom fields up-front, and setting up project views (table, board, roadmap).\n\nThree modes: (1) Add or update project items with custom field values; (2) Create project fields; (3) Create project views. This is the primary tool for ProjectOps automation - add items to projects, set custom fields for tracking, and organize project boards.", diff --git a/pkg/workflow/safe_output_validation_config_test.go b/pkg/workflow/safe_output_validation_config_test.go index 847f5799022..21bec258c65 100644 --- a/pkg/workflow/safe_output_validation_config_test.go +++ b/pkg/workflow/safe_output_validation_config_test.go @@ -211,6 +211,7 @@ func TestValidationConfigConsistency(t *testing.T) { "requiresOneOf:title,body,update_branch": true, "requiresOneOf:title,body,labels": true, "requiresOneOf:issue_number,pull_number": true, + "requiresOneOf:field_name,field_node_id": true, "requiresOneOf:reviewers,team_reviewers": true, "startLineLessOrEqualLine": true, "parentAndSubDifferent": true, diff --git a/pkg/workflow/safe_outputs_config.go b/pkg/workflow/safe_outputs_config.go index b825bc86aa6..7486e50ef34 100644 --- a/pkg/workflow/safe_outputs_config.go +++ b/pkg/workflow/safe_outputs_config.go @@ -307,6 +307,12 @@ func (c *Compiler) extractSafeOutputsConfig(frontmatter map[string]any) *SafeOut config.SetIssueType = setIssueTypeConfig } + // Handle set-issue-field + setIssueFieldConfig := c.parseSetIssueFieldConfig(outputMap) + if setIssueFieldConfig != nil { + config.SetIssueField = setIssueFieldConfig + } + // Handle dispatch-workflow dispatchWorkflowConfig := c.parseDispatchWorkflowConfig(outputMap) if dispatchWorkflowConfig != nil { diff --git a/pkg/workflow/safe_outputs_max_validation.go b/pkg/workflow/safe_outputs_max_validation.go index 3a0d705e35c..4185e3e3fc8 100644 --- a/pkg/workflow/safe_outputs_max_validation.go +++ b/pkg/workflow/safe_outputs_max_validation.go @@ -224,6 +224,11 @@ func validateSafeOutputsMax(config *SafeOutputsConfig) error { return err } } + if config.SetIssueField != nil { + if err := checkMaxField("set_issue_field", config.SetIssueField.Max); err != nil { + return err + } + } if config.SubmitPullRequestReview != nil { if err := checkMaxField("submit_pull_request_review", config.SubmitPullRequestReview.Max); err != nil { return err diff --git a/pkg/workflow/safe_outputs_permissions.go b/pkg/workflow/safe_outputs_permissions.go index 9aee847dc49..20435d569cd 100644 --- a/pkg/workflow/safe_outputs_permissions.go +++ b/pkg/workflow/safe_outputs_permissions.go @@ -264,6 +264,10 @@ func ComputePermissionsForSafeOutputs(safeOutputs *SafeOutputsConfig) *Permissio safeOutputsPermissionsLog.Print("Adding permissions for set-issue-type") permissions.Merge(NewPermissionsContentsReadIssuesWrite()) } + if safeOutputs.SetIssueField != nil && !isHandlerStaged(safeOutputs.Staged, safeOutputs.SetIssueField.Staged) { + safeOutputsPermissionsLog.Print("Adding permissions for set-issue-field") + permissions.Merge(NewPermissionsContentsReadIssuesWrite()) + } if safeOutputs.AddReviewer != nil && !isHandlerStaged(safeOutputs.Staged, safeOutputs.AddReviewer.Staged) { safeOutputsPermissionsLog.Print("Adding permissions for add-reviewer") permissions.Merge(NewPermissionsContentsReadPRWrite()) diff --git a/pkg/workflow/safe_outputs_state.go b/pkg/workflow/safe_outputs_state.go index 0f9d827502d..456e65b3850 100644 --- a/pkg/workflow/safe_outputs_state.go +++ b/pkg/workflow/safe_outputs_state.go @@ -65,6 +65,7 @@ var safeOutputFieldMapping = map[string]string{ "MissingTool": "missing_tool", "MissingData": "missing_data", "SetIssueType": "set_issue_type", + "SetIssueField": "set_issue_field", "NoOp": "noop", "MarkPullRequestAsReadyForReview": "mark_pull_request_as_ready_for_review", } @@ -129,6 +130,7 @@ func hasAnySafeOutputEnabled(safeOutputs *SafeOutputsConfig) bool { safeOutputs.MissingTool != nil || safeOutputs.MissingData != nil || safeOutputs.SetIssueType != nil || + safeOutputs.SetIssueField != nil || safeOutputs.NoOp != nil // 43rd field } @@ -190,7 +192,8 @@ func hasNonBuiltinSafeOutputsEnabled(safeOutputs *SafeOutputsConfig) bool { safeOutputs.DispatchWorkflow != nil || safeOutputs.DispatchRepository != nil || safeOutputs.CallWorkflow != nil || - safeOutputs.SetIssueType != nil // 40th non-builtin field + safeOutputs.SetIssueType != nil || + safeOutputs.SetIssueField != nil // non-builtin safe output field } // HasSafeOutputsEnabled checks if any safe-outputs are enabled diff --git a/pkg/workflow/safe_outputs_tools_computation.go b/pkg/workflow/safe_outputs_tools_computation.go index 2b477f07923..fbe66c9d501 100644 --- a/pkg/workflow/safe_outputs_tools_computation.go +++ b/pkg/workflow/safe_outputs_tools_computation.go @@ -119,6 +119,9 @@ func computeEnabledToolNames(data *WorkflowData) map[string]bool { if data.SafeOutputs.SetIssueType != nil { enabledTools["set_issue_type"] = true } + if data.SafeOutputs.SetIssueField != nil { + enabledTools["set_issue_field"] = true + } if data.SafeOutputs.UpdateProjects != nil { enabledTools["update_project"] = true } diff --git a/pkg/workflow/safe_outputs_tools_repo_params.go b/pkg/workflow/safe_outputs_tools_repo_params.go index 787b213895e..712a3fe68b2 100644 --- a/pkg/workflow/safe_outputs_tools_repo_params.go +++ b/pkg/workflow/safe_outputs_tools_repo_params.go @@ -76,7 +76,7 @@ func addRepoParameterIfNeeded(tool map[string]any, toolName string, safeOutputs } case "add_labels", "remove_labels", "hide_comment", "link_sub_issue", "mark_pull_request_as_ready_for_review", "add_reviewer", "assign_milestone", "assign_to_agent", "assign_to_user", "unassign_from_user", - "set_issue_type": + "set_issue_type", "set_issue_field": // These use SafeOutputTargetConfig - check the appropriate config switch toolName { case "add_labels": @@ -134,6 +134,11 @@ func addRepoParameterIfNeeded(tool map[string]any, toolName string, safeOutputs hasAllowedRepos = len(config.AllowedRepos) > 0 targetRepoSlug = config.TargetRepoSlug } + case "set_issue_field": + if config := safeOutputs.SetIssueField; config != nil { + hasAllowedRepos = len(config.AllowedRepos) > 0 + targetRepoSlug = config.TargetRepoSlug + } } } diff --git a/pkg/workflow/safe_outputs_validation_config.go b/pkg/workflow/safe_outputs_validation_config.go index 8dad93d78a7..3de340069a0 100644 --- a/pkg/workflow/safe_outputs_validation_config.go +++ b/pkg/workflow/safe_outputs_validation_config.go @@ -127,6 +127,17 @@ var ValidationConfig = map[string]TypeValidationConfig{ "repo": {Type: "string", MaxLength: 256}, // Optional: target repository in format "owner/repo" }, }, + "set_issue_field": { + DefaultMax: 5, + CustomValidation: "requiresOneOf:field_name,field_node_id", + Fields: map[string]FieldValidation{ + "issue_number": {IssueOrPRNumber: true}, + "field_name": {Type: "string", Sanitize: true, MaxLength: 128}, + "field_node_id": {Type: "string", MaxLength: 256}, + "value": {Required: true, Type: "string", Sanitize: true, MaxLength: 256}, + "repo": {Type: "string", MaxLength: 256}, // Optional: target repository in format "owner/repo" + }, + }, "assign_to_agent": { DefaultMax: 1, CustomValidation: "requiresOneOf:issue_number,pull_number", diff --git a/pkg/workflow/set_issue_field.go b/pkg/workflow/set_issue_field.go new file mode 100644 index 00000000000..9ca4bbb565d --- /dev/null +++ b/pkg/workflow/set_issue_field.go @@ -0,0 +1,24 @@ +package workflow + +import "github.com/github/gh-aw/pkg/logger" + +var setIssueFieldLog = logger.New("workflow:set_issue_field") + +// SetIssueFieldConfig holds configuration for setting a single issue field from agent output. +type SetIssueFieldConfig struct { + BaseSafeOutputConfig `yaml:",inline"` + SafeOutputTargetConfig `yaml:",inline"` + AllowedFields []string `yaml:"allowed-fields,omitempty"` // Optional list of allowed issue field names. If omitted or empty, any field is allowed. Use ["*"] to explicitly allow all. +} + +// parseSetIssueFieldConfig handles set-issue-field configuration. +func (c *Compiler) parseSetIssueFieldConfig(outputMap map[string]any) *SetIssueFieldConfig { + config := parseConfigScaffold(outputMap, "set-issue-field", setIssueFieldLog, func(err error) *SetIssueFieldConfig { + setIssueFieldLog.Printf("Failed to unmarshal set-issue-field config, disabling handler: %v", err) + return nil + }) + if config != nil { + setIssueFieldLog.Printf("Parsed configuration: target=%s", config.Target) + } + return config +} diff --git a/pkg/workflow/set_issue_field_handler_config_test.go b/pkg/workflow/set_issue_field_handler_config_test.go new file mode 100644 index 00000000000..3297a37d95e --- /dev/null +++ b/pkg/workflow/set_issue_field_handler_config_test.go @@ -0,0 +1,84 @@ +//go:build !integration + +package workflow + +import ( + "encoding/json" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/github/gh-aw/pkg/testutil" +) + +func TestSetIssueFieldHandlerConfigIncludesAllowedFields(t *testing.T) { + tmpDir := testutil.TempDir(t, "set-issue-field-handler-config-test") + + testContent := `--- +name: Test Set Issue Field Handler Config +on: workflow_dispatch +permissions: + contents: read +engine: copilot +safe-outputs: + set-issue-field: + max: 2 + allowed-fields: [Priority, Iteration] +--- + +Set issue field values. +` + + testFile := filepath.Join(tmpDir, "test-set-issue-field-handler-config.md") + if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + t.Fatal(err) + } + + compiler := NewCompiler() + if err := compiler.CompileWorkflow(testFile); err != nil { + t.Fatalf("failed to compile workflow: %v", err) + } + + outputFile := filepath.Join(tmpDir, "test-set-issue-field-handler-config.lock.yml") + compiledContent, err := os.ReadFile(outputFile) + if err != nil { + t.Fatalf("failed to read compiled output: %v", err) + } + + lines := strings.Split(string(compiledContent), "\n") + var configJSON string + for _, line := range lines { + if strings.Contains(line, "GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG:") { + parts := strings.SplitN(line, "GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG:", 2) + if len(parts) == 2 { + configJSON = strings.TrimSpace(parts[1]) + configJSON = strings.Trim(configJSON, "\"") + configJSON = strings.ReplaceAll(configJSON, "\\\"", "\"") + break + } + } + } + + if configJSON == "" { + t.Fatal("could not extract handler config JSON") + } + + var config map[string]any + if err := json.Unmarshal([]byte(configJSON), &config); err != nil { + t.Fatalf("failed to parse handler config JSON: %v\njson: %s", err, configJSON) + } + + setIssueFieldConfig, ok := config["set_issue_field"].(map[string]any) + if !ok { + t.Fatal("expected set_issue_field in handler config") + } + + allowedFields, ok := setIssueFieldConfig["allowed_fields"].([]any) + if !ok { + t.Fatal("expected allowed_fields array in set_issue_field config") + } + if len(allowedFields) != 2 || allowedFields[0] != "Priority" || allowedFields[1] != "Iteration" { + t.Fatalf("expected allowed_fields=[Priority, Iteration], got: %v", allowedFields) + } +} diff --git a/pkg/workflow/tool_description_enhancer.go b/pkg/workflow/tool_description_enhancer.go index dfae02423ca..01902c44366 100644 --- a/pkg/workflow/tool_description_enhancer.go +++ b/pkg/workflow/tool_description_enhancer.go @@ -23,6 +23,17 @@ func formatStringList(items []string) string { return "[" + strings.Join(quoted, " ") + "]" } +func appendAllowedIssueFieldsConstraint(constraints *[]string, allowedFields []string) { + if len(allowedFields) == 0 { + return + } + if slices.Contains(allowedFields, "*") { + *constraints = append(*constraints, "Any issue field is allowed.") + return + } + *constraints = append(*constraints, fmt.Sprintf("Only these issue fields are allowed: %s.", formatStringList(allowedFields))) +} + // enhanceToolDescription adds configuration-specific constraints to tool descriptions // This provides agents with context about limits and restrictions configured in the workflow func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeOutputsConfig) string { @@ -50,13 +61,7 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO if len(config.AllowedLabels) > 0 { constraints = append(constraints, fmt.Sprintf("Only these labels are allowed: %s.", formatStringList(config.AllowedLabels))) } - if len(config.AllowedFields) > 0 { - if slices.Contains(config.AllowedFields, "*") { - constraints = append(constraints, "Any issue field is allowed.") - } else { - constraints = append(constraints, fmt.Sprintf("Only these issue fields are allowed: %s.", formatStringList(config.AllowedFields))) - } - } + appendAllowedIssueFieldsConstraint(&constraints, config.AllowedFields) if len(config.Assignees) > 0 { constraints = append(constraints, fmt.Sprintf("Assignees %s will be automatically assigned.", formatStringList(config.Assignees))) } @@ -65,6 +70,17 @@ func enhanceToolDescription(toolName, baseDescription string, safeOutputs *SafeO } } + case "set_issue_field": + if config := safeOutputs.SetIssueField; config != nil { + if templatableIntValue(config.Max) > 0 { + constraints = append(constraints, fmt.Sprintf("Maximum %d issue field update(s) can be made.", templatableIntValue(config.Max))) + } + appendAllowedIssueFieldsConstraint(&constraints, config.AllowedFields) + if config.TargetRepoSlug != "" { + constraints = append(constraints, fmt.Sprintf("Issue fields will be updated in repository %q.", config.TargetRepoSlug)) + } + } + case "create_agent_session": if config := safeOutputs.CreateAgentSessions; config != nil { if templatableIntValue(config.Max) > 0 { diff --git a/pkg/workflow/tool_description_enhancer_test.go b/pkg/workflow/tool_description_enhancer_test.go index 3e9f2cb23ef..53736a38a8b 100644 --- a/pkg/workflow/tool_description_enhancer_test.go +++ b/pkg/workflow/tool_description_enhancer_test.go @@ -33,3 +33,30 @@ func TestEnhanceToolDescriptionCreateIssueAllowedFieldsList(t *testing.T) { t.Fatalf("expected restrictive fields message in description, got: %s", description) } } + +func TestEnhanceToolDescriptionSetIssueFieldAllowedFieldsWildcard(t *testing.T) { + description := enhanceToolDescription("set_issue_field", "Set one issue field.", &SafeOutputsConfig{ + SetIssueField: &SetIssueFieldConfig{ + AllowedFields: []string{"*"}, + }, + }) + + if !strings.Contains(description, "Any issue field is allowed.") { + t.Fatalf("expected wildcard message in description, got: %s", description) + } + if strings.Contains(description, "Only these issue fields are allowed") { + t.Fatalf("did not expect restrictive fields message for wildcard, got: %s", description) + } +} + +func TestEnhanceToolDescriptionSetIssueFieldAllowedFieldsList(t *testing.T) { + description := enhanceToolDescription("set_issue_field", "Set one issue field.", &SafeOutputsConfig{ + SetIssueField: &SetIssueFieldConfig{ + AllowedFields: []string{"Priority", "Iteration"}, + }, + }) + + if !strings.Contains(description, "Only these issue fields are allowed: [\"Priority\" \"Iteration\"].") { + t.Fatalf("expected restrictive fields message in description, got: %s", description) + } +} diff --git a/pkg/workflow/unified_prompt_step.go b/pkg/workflow/unified_prompt_step.go index 55a916c2bd3..57ac39c7cd9 100644 --- a/pkg/workflow/unified_prompt_step.go +++ b/pkg/workflow/unified_prompt_step.go @@ -649,6 +649,9 @@ func buildSafeOutputsSections(safeOutputs *SafeOutputsConfig) []PromptSection { if safeOutputs.SetIssueType != nil { tools = append(tools, toolWithMaxBudget("set_issue_type", safeOutputs.SetIssueType.Max)) } + if safeOutputs.SetIssueField != nil { + tools = append(tools, toolWithMaxBudget("set_issue_field", safeOutputs.SetIssueField.Max)) + } if safeOutputs.DispatchWorkflow != nil { tools = append(tools, toolWithMaxBudget("dispatch_workflow", safeOutputs.DispatchWorkflow.Max)) } From 5c828669359f7ae2ab18aec856ffc32ecac32f01 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 03:54:50 -0700 Subject: [PATCH 09/16] Add `github.job` to OTLP resource attributes for all GH Actions span types (#30977) --- actions/setup/js/otlp.cjs | 1 + actions/setup/js/otlp.test.cjs | 9 +++++++ actions/setup/js/send_otlp_span.cjs | 12 +++++++--- actions/setup/js/send_otlp_span.test.cjs | 30 ++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/actions/setup/js/otlp.cjs b/actions/setup/js/otlp.cjs index 446818fd585..2c74980d587 100644 --- a/actions/setup/js/otlp.cjs +++ b/actions/setup/js/otlp.cjs @@ -117,6 +117,7 @@ async function logSpan(toolName, attributes = {}, options = {}) { refName: process.env.GITHUB_REF_NAME || "", headRef: process.env.GITHUB_HEAD_REF || "", sha: process.env.GITHUB_SHA || "", + job: process.env.GITHUB_JOB || "", workflowRef: process.env.GH_AW_CURRENT_WORKFLOW_REF || process.env.GITHUB_WORKFLOW_REF || "", staged, }); diff --git a/actions/setup/js/otlp.test.cjs b/actions/setup/js/otlp.test.cjs index 96d2b1015ff..357384ec98b 100644 --- a/actions/setup/js/otlp.test.cjs +++ b/actions/setup/js/otlp.test.cjs @@ -101,6 +101,7 @@ describe("otlp.cjs", () => { GITHUB_REF_NAME: process.env.GITHUB_REF_NAME, GITHUB_HEAD_REF: process.env.GITHUB_HEAD_REF, GITHUB_SHA: process.env.GITHUB_SHA, + GITHUB_JOB: process.env.GITHUB_JOB, GITHUB_WORKFLOW_REF: process.env.GITHUB_WORKFLOW_REF, GH_AW_CURRENT_WORKFLOW_REF: process.env.GH_AW_CURRENT_WORKFLOW_REF, GH_AW_INFO_STAGED: process.env.GH_AW_INFO_STAGED, @@ -414,6 +415,14 @@ describe("otlp.cjs", () => { expect(mockBuildGitHubActionsResourceAttributes).toHaveBeenCalledWith(expect.objectContaining({ sha: "abc123def456" })); }); + + it("passes GITHUB_JOB to buildGitHubActionsResourceAttributes when set", async () => { + process.env.GITHUB_JOB = "agent"; + + await otlp.logSpan("my-scanner", {}); + + expect(mockBuildGitHubActionsResourceAttributes).toHaveBeenCalledWith(expect.objectContaining({ job: "agent" })); + }); }); // --------------------------------------------------------------------------- diff --git a/actions/setup/js/send_otlp_span.cjs b/actions/setup/js/send_otlp_span.cjs index 6db1766744c..1b102e37f98 100644 --- a/actions/setup/js/send_otlp_span.cjs +++ b/actions/setup/js/send_otlp_span.cjs @@ -297,13 +297,14 @@ function buildOTLPResourceAttributes(serviceName, scopeVersion, resourceAttribut * refName?: string, * headRef?: string, * sha?: string, + * job?: string, * workflowRef?: string, * staged: boolean, * runAttempt?: string, * }} ctx * @returns {Array<{key: string, value: object}>} */ -function buildGitHubActionsResourceAttributes({ repository, runId, eventName = "", ref = "", refName = "", headRef = "", sha = "", workflowRef = "", staged, runAttempt = "1" }) { +function buildGitHubActionsResourceAttributes({ repository, runId, eventName = "", ref = "", refName = "", headRef = "", sha = "", job = "", workflowRef = "", staged, runAttempt = "1" }) { const resourceAttributes = [buildAttr("github.repository", repository), buildAttr("github.run_id", runId), buildAttr("github.run_attempt", runAttempt)]; if (repository && runId && repository.includes("/")) { const [owner, repo] = repository.split("/"); @@ -324,6 +325,9 @@ function buildGitHubActionsResourceAttributes({ repository, runId, eventName = " if (sha) { resourceAttributes.push(buildAttr("github.sha", sha)); } + if (job) { + resourceAttributes.push(buildAttr("github.job", job)); + } if (workflowRef) { resourceAttributes.push(buildAttr("github.workflow_ref", workflowRef)); } @@ -873,6 +877,7 @@ async function sendJobSetupSpan(options = {}) { const refName = process.env.GITHUB_REF_NAME || ""; const headRef = process.env.GITHUB_HEAD_REF || ""; const sha = process.env.GITHUB_SHA || ""; + const job = process.env.GITHUB_JOB || ""; const workflowRef = process.env.GH_AW_CURRENT_WORKFLOW_REF || process.env.GITHUB_WORKFLOW_REF || ""; const attributes = [ @@ -914,7 +919,7 @@ async function sendJobSetupSpan(options = {}) { attributes.push(...buildExperimentAttributes(experimentAssignments)); attributes.push(...buildEpisodeAttributesFromContext(awInfo, runId, runAttempt)); - const resourceAttributes = buildGitHubActionsResourceAttributes({ repository, runId, eventName, ref, refName, headRef, sha, workflowRef, staged, runAttempt }); + const resourceAttributes = buildGitHubActionsResourceAttributes({ repository, runId, eventName, ref, refName, headRef, sha, job, workflowRef, staged, runAttempt }); const payload = buildOTLPPayload({ traceId, @@ -1232,6 +1237,7 @@ async function sendJobConclusionSpan(spanName, options = {}) { const refName = process.env.GITHUB_REF_NAME || ""; const headRef = process.env.GITHUB_HEAD_REF || ""; const sha = process.env.GITHUB_SHA || ""; + const job = process.env.GITHUB_JOB || ""; const workflowRef = process.env.GITHUB_WORKFLOW_REF || ""; // Agent conclusion is passed to downstream jobs via GH_AW_AGENT_CONCLUSION. @@ -1365,7 +1371,7 @@ async function sendJobConclusionSpan(spanName, options = {}) { const conclusionExperimentAssignments = readExperimentAssignments(); attributes.push(...buildExperimentAttributes(conclusionExperimentAssignments)); - const resourceAttributes = buildGitHubActionsResourceAttributes({ repository, runId, eventName, ref, refName, headRef, sha, workflowRef, staged, runAttempt }); + const resourceAttributes = buildGitHubActionsResourceAttributes({ repository, runId, eventName, ref, refName, headRef, sha, job, workflowRef, staged, runAttempt }); // OpenTelemetry semantic convention for exceptions. Each event has // name="exception" with "exception.type" and "exception.message" attributes, // making individual errors queryable and classifiable in backends like diff --git a/actions/setup/js/send_otlp_span.test.cjs b/actions/setup/js/send_otlp_span.test.cjs index 4b806b3b734..d3b0619cc32 100644 --- a/actions/setup/js/send_otlp_span.test.cjs +++ b/actions/setup/js/send_otlp_span.test.cjs @@ -1074,6 +1074,7 @@ describe("sendJobSetupSpan", () => { "GITHUB_REF_NAME", "GITHUB_HEAD_REF", "GITHUB_SHA", + "GITHUB_JOB", "GITHUB_WORKFLOW_REF", "GH_AW_INFO_VERSION", "GH_AW_INFO_STAGED", @@ -1539,6 +1540,20 @@ describe("sendJobSetupSpan", () => { expect(resourceKeys).not.toContain("github.workflow_ref"); }); + it("includes github.job as resource attribute when GITHUB_JOB is set", async () => { + const mockFetch = vi.fn().mockResolvedValue({ ok: true, status: 200, statusText: "OK" }); + vi.stubGlobal("fetch", mockFetch); + + process.env.GH_AW_OTLP_ENDPOINTS = JSON.stringify([{ url: "https://traces.example.com" }]); + process.env.GITHUB_JOB = "agent"; + + await sendJobSetupSpan(); + + const body = JSON.parse(mockFetch.mock.calls[0][1].body); + const resourceAttrs = body.resourceSpans[0].resource.attributes; + expect(resourceAttrs).toContainEqual({ key: "github.job", value: { stringValue: "agent" } }); + }); + it("includes github.actions.run_url as resource attribute when repository and run_id are set", async () => { const mockFetch = vi.fn().mockResolvedValue({ ok: true, status: 200, statusText: "OK" }); vi.stubGlobal("fetch", mockFetch); @@ -2106,6 +2121,7 @@ describe("sendJobConclusionSpan", () => { "GITHUB_REF_NAME", "GITHUB_HEAD_REF", "GITHUB_SHA", + "GITHUB_JOB", "GITHUB_WORKFLOW_REF", "INPUT_JOB_NAME", "GH_AW_AGENT_CONCLUSION", @@ -3999,6 +4015,20 @@ describe("sendJobConclusionSpan", () => { expect(resourceKeys).not.toContain("github.workflow_ref"); }); + it("includes github.job as resource attribute when GITHUB_JOB is set", async () => { + const mockFetch = vi.fn().mockResolvedValue({ ok: true, status: 200, statusText: "OK" }); + vi.stubGlobal("fetch", mockFetch); + + process.env.GH_AW_OTLP_ENDPOINTS = JSON.stringify([{ url: "https://traces.example.com" }]); + process.env.GITHUB_JOB = "conclusion"; + + await sendJobConclusionSpan("gh-aw.job.conclusion"); + + const body = JSON.parse(mockFetch.mock.calls[0][1].body); + const resourceAttrs = body.resourceSpans[0].resource.attributes; + expect(resourceAttrs).toContainEqual({ key: "github.job", value: { stringValue: "conclusion" } }); + }); + describe("staged / deployment.environment", () => { let readFileSpy; From 0fe6d736ae0f07fe4531c6532df1767666944211 Mon Sep 17 00:00:00 2001 From: Mara Nikola Kiefer <8320933+mnkiefer@users.noreply.github.com> Date: Fri, 8 May 2026 12:59:53 +0200 Subject: [PATCH 10/16] Update slides (#31000) --- .../20260407-github-agentic-workflows.pdf | Bin 18575520 -> 18725789 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/slides/20260407-github-agentic-workflows.pdf b/docs/slides/20260407-github-agentic-workflows.pdf index 42cbd8c46bd2d765c6487eb5cd4247eb9f57e1bd..89fa045c25cb4a73af724826e25fbd30e0219c88 100644 GIT binary patch delta 1215337 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�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‏kD1C<7trwCM6fE*y9>Js?VFilyw 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

S` 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%0A%WQiU7)85ACzjQMBPk5p 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

IduvyJz2>$}%l|9g#r}Y{KrV3J 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

nz6umK=9OuAiI-{URHOhvd*UyQm#rz5) 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

hU{F+jJIWS-=K6Vf#O}s4*!4&`$1CVwPM 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�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℞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
  • 8@T&hy6|Q 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 z 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

    ?nT-R`hR@&Z=>)*d7LW5@#FBET18D2 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� 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

    +svfkYeKP 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

    lG6T(KDmO^92RTJv|3 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 sfnT~gBjT8} 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 ulA=~P0y4rTEBt?!t}o>)Z1!;6 From fb462cab2884d55d105b343a386233ba07b8238e Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 04:02:00 -0700 Subject: [PATCH 11/16] [q] feat(go-fan): publish daily report as issue (automation+cookie) instead of discussion (#30989) --- .github/workflows/go-fan.lock.yml | 105 ++++++++++++------------------ .github/workflows/go-fan.md | 13 ++-- 2 files changed, 47 insertions(+), 71 deletions(-) diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 9e0730067df..c65e2f78012 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5d2bfd8562346a117204579c663a2ef888d447c79cf44f049c43c9f3e052751b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"842200bc4b8ed62100e2350b2ad588e17b4dfd6e4bce922fd432030655cedcbf","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,20 +26,17 @@ # # Resolved workflow manifest: # Imports: -# - shared/daily-audit-discussion.md +# - shared/activation-app.md # - shared/mcp/serena-go.md # - shared/mcp/serena.md -# - shared/observability-otlp.md # - shared/reporting.md -# - shared/daily-audit-base.md +# - shared/daily-issue-base.md # - shared/go-source-analysis.md # # Secrets used: # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN -# - GH_AW_OTEL_ENDPOINT -# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -82,13 +79,6 @@ concurrency: run-name: "Go Fan" -env: - OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} - OTEL_SERVICE_NAME: gh-aw - COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl - OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} - GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' - jobs: activation: runs-on: ubuntu-slim @@ -122,8 +112,6 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" - - name: Mask OTLP telemetry headers - run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -204,21 +192,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_d9296afd7e9e0604_EOF' + cat << 'GH_AW_PROMPT_e0d11d82d83abdd3_EOF' - GH_AW_PROMPT_d9296afd7e9e0604_EOF + GH_AW_PROMPT_e0d11d82d83abdd3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_d9296afd7e9e0604_EOF' + cat << 'GH_AW_PROMPT_e0d11d82d83abdd3_EOF' - Tools: create_discussion, missing_tool, missing_data, noop + Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_d9296afd7e9e0604_EOF + GH_AW_PROMPT_e0d11d82d83abdd3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_d9296afd7e9e0604_EOF' + cat << 'GH_AW_PROMPT_e0d11d82d83abdd3_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -247,9 +235,9 @@ jobs: {{/if}} - GH_AW_PROMPT_d9296afd7e9e0604_EOF + GH_AW_PROMPT_e0d11d82d83abdd3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_d9296afd7e9e0604_EOF' + cat << 'GH_AW_PROMPT_e0d11d82d83abdd3_EOF' ## Serena Code Analysis @@ -283,12 +271,12 @@ jobs: {{#runtime-import .github/workflows/shared/go-source-analysis.md}} + {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/mcp/serena-go.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/go-fan.md}} - GH_AW_PROMPT_d9296afd7e9e0604_EOF + GH_AW_PROMPT_e0d11d82d83abdd3_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -424,8 +412,6 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" - - name: Mask OTLP telemetry headers - run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -520,22 +506,22 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_2f3350638564be9c_EOF' - {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[go-fan] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_2f3350638564be9c_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_4dc478ab00d8e6fd_EOF' + {"create_issue":{"expires":24,"labels":["automation","cookie"],"max":1,"title_prefix":"[go-fan] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} + GH_AW_SAFE_OUTPUTS_CONFIG_4dc478ab00d8e6fd_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | { "description_suffixes": { - "create_discussion": " CONSTRAINTS: Maximum 1 discussion(s) can be created. Title will be prefixed with \"[go-fan] \". Discussions will be created in category \"audits\"." + "create_issue": " CONSTRAINTS: Maximum 1 issue(s) can be created. Title will be prefixed with \"[go-fan] \". Labels [\"automation\" \"cookie\"] will be automatically added." }, "repo_params": {}, "dynamic_tools": [] } GH_AW_VALIDATION_JSON: | { - "create_discussion": { + "create_issue": { "defaultMax": 1, "fields": { "body": { @@ -544,15 +530,25 @@ jobs: "sanitize": true, "maxLength": 65000 }, - "category": { - "type": "string", - "sanitize": true, - "maxLength": 128 + "fields": { + "type": "array" + }, + "labels": { + "type": "array", + "itemType": "string", + "itemSanitize": true, + "itemMaxLength": 128 + }, + "parent": { + "issueOrPRNumber": true }, "repo": { "type": "string", "maxLength": 256 }, + "temporary_id": { + "type": "string" + }, "title": { "required": true, "type": "string", @@ -710,10 +706,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_cad939922e5a6140_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_0407d665b7ad8ac3_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -761,16 +757,10 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", - "opentelemetry": { - "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", - "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", - "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", - "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" - } + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_cad939922e5a6140_EOF + GH_AW_MCP_CONFIG_0407d665b7ad8ac3_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1063,15 +1053,6 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); - - name: Generate observability summary - if: always() - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 - with: - script: | - const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); - setupGlobals(core, github, context, exec, io, getOctokit); - const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); - await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1103,8 +1084,6 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl - /tmp/gh-aw/otel.jsonl - /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1128,7 +1107,6 @@ jobs: runs-on: ubuntu-slim permissions: contents: read - discussions: write issues: write concurrency: group: "gh-aw-conclusion-go-fan" @@ -1252,8 +1230,6 @@ jobs: GH_AW_SECRET_VERIFICATION_RESULT: ${{ needs.activation.outputs.secret_verification_result }} GH_AW_CHECKOUT_PR_SUCCESS: ${{ needs.agent.outputs.checkout_pr_success }} GH_AW_ENGINE_API_HOSTS: "api.anthropic.com" - GH_AW_CREATE_DISCUSSION_ERRORS: ${{ needs.safe_outputs.outputs.create_discussion_errors }} - GH_AW_CREATE_DISCUSSION_ERROR_COUNT: ${{ needs.safe_outputs.outputs.create_discussion_error_count }} GH_AW_LOCKDOWN_CHECK_FAILED: ${{ needs.activation.outputs.lockdown_check_failed }} GH_AW_STALE_LOCK_FILE_FAILED: ${{ needs.activation.outputs.stale_lock_file_failed }} GH_AW_GROUP_REPORTS: "false" @@ -1482,7 +1458,6 @@ jobs: runs-on: ubuntu-slim permissions: contents: read - discussions: write issues: write timeout-minutes: 15 env: @@ -1500,6 +1475,8 @@ jobs: code_push_failure_errors: ${{ steps.process_safe_outputs.outputs.code_push_failure_errors }} create_discussion_error_count: ${{ steps.process_safe_outputs.outputs.create_discussion_error_count }} create_discussion_errors: ${{ steps.process_safe_outputs.outputs.create_discussion_errors }} + created_issue_number: ${{ steps.process_safe_outputs.outputs.created_issue_number }} + created_issue_url: ${{ steps.process_safe_outputs.outputs.created_issue_url }} process_safe_outputs_processed_count: ${{ steps.process_safe_outputs.outputs.processed_count }} process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }} steps: @@ -1521,8 +1498,6 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Go Fan" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/go-fan.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" - - name: Mask OTLP telemetry headers - run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true @@ -1554,7 +1529,7 @@ jobs: GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,anthropic.com,api.anthropic.com,api.github.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,cdn.playwright.dev,codeload.github.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,docs.github.com,files.pythonhosted.org,ghcr.io,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,go.dev,golang.org,goproxy.io,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,lfs.github.com,objects.githubusercontent.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,pkg.go.dev,playwright.download.prss.microsoft.com,ppa.launchpad.net,proxy.golang.org,pypi.org,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,sentry.io,statsig.anthropic.com,storage.googleapis.com,sum.golang.org,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com" GITHUB_SERVER_URL: ${{ github.server_url }} GITHUB_API_URL: ${{ github.api_url }} - GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_discussion\":{\"category\":\"audits\",\"close_older_discussions\":true,\"expires\":24,\"fallback_to_issue\":true,\"max\":1,\"title_prefix\":\"[go-fan] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}" + GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_issue\":{\"expires\":24,\"labels\":[\"automation\",\"cookie\"],\"max\":1,\"title_prefix\":\"[go-fan] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}" with: github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} script: | diff --git a/.github/workflows/go-fan.md b/.github/workflows/go-fan.md index 5b770649db9..f8eced3725c 100644 --- a/.github/workflows/go-fan.md +++ b/.github/workflows/go-fan.md @@ -23,10 +23,11 @@ network: - go imports: - - uses: shared/daily-audit-base.md + - uses: shared/daily-issue-base.md with: title-prefix: "[go-fan] " expires: 1d + labels: [automation, cookie] - shared/go-source-analysis.md tools: @@ -68,7 +69,7 @@ Each day, you will: 5. Research the module's GitHub repository for usage patterns and recent features 6. Analyze how this project uses the module 7. Identify potential improvements or better usage patterns -8. Save a summary under `scratchpad/mods/` and create a discussion with your findings +8. Save a summary under `scratchpad/mods/` and create an issue with your findings ## Step 1: Load Round-Robin State from Cache @@ -253,9 +254,9 @@ Save your progress to **`/tmp/gh-aw/cache-memory/state.json`**: This allows the round-robin to cycle through all dependencies while maintaining preference for recently updated ones. -## Step 8: Create Discussion +## Step 8: Create Issue -Create a discussion summarizing your findings: +Create an issue summarizing your findings: **Title Format**: `Go Module Review: ` @@ -332,9 +333,9 @@ Use Serena for: Your output MUST include: 1. A module summary saved to `scratchpad/mods/.md` -2. A discussion with your complete analysis and recommendations +2. An issue with your complete analysis and recommendations -If you cannot find any improvements, still create a discussion noting the module is well-utilized and document your analysis in `scratchpad/mods/`. +If you cannot find any improvements, still create an issue noting the module is well-utilized and document your analysis in `scratchpad/mods/`. Begin your analysis! Pick the next module and start your deep review. From 89855b4bd72ef7c541d794383cd5a096862b2f4b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 04:04:47 -0700 Subject: [PATCH 12/16] Handle `issue_comment` PR context in `submit_pull_request_review` body-only flows (#30987) --- actions/setup/js/safe_output_helpers.cjs | 9 ++- actions/setup/js/safe_output_helpers.test.cjs | 18 ++++++ actions/setup/js/submit_pr_review.test.cjs | 55 +++++++++++++++++++ 3 files changed, 80 insertions(+), 2 deletions(-) diff --git a/actions/setup/js/safe_output_helpers.cjs b/actions/setup/js/safe_output_helpers.cjs index 997bcbeb62e..a62a9528111 100644 --- a/actions/setup/js/safe_output_helpers.cjs +++ b/actions/setup/js/safe_output_helpers.cjs @@ -72,8 +72,10 @@ function resolveTarget(params) { const { targetConfig, item, context, itemType, supportsPR = false, supportsIssue = false } = params; // Check context type - const isIssueContext = context.eventName === "issues" || context.eventName === "issue_comment"; - const isPRContext = context.eventName === "pull_request" || context.eventName === "pull_request_target" || context.eventName === "pull_request_review" || context.eventName === "pull_request_review_comment"; + const prEventNames = new Set(["pull_request", "pull_request_target", "pull_request_review", "pull_request_review_comment"]); + const isIssueCommentOnPR = context.eventName === "issue_comment" && Boolean(context.payload?.issue?.pull_request); + const isIssueContext = context.eventName === "issues" || (context.eventName === "issue_comment" && !isIssueCommentOnPR); + const isPRContext = prEventNames.has(context.eventName) || isIssueCommentOnPR; // Default target is "triggering" const target = targetConfig || "triggering"; @@ -206,6 +208,9 @@ function resolveTarget(params) { if (context.payload.pull_request) { itemNumber = context.payload.pull_request.number; contextType = "pull request"; + } else if (isIssueCommentOnPR) { + itemNumber = context.payload.issue.number; + contextType = "pull request"; } else { return { success: false, diff --git a/actions/setup/js/safe_output_helpers.test.cjs b/actions/setup/js/safe_output_helpers.test.cjs index 9e68fe46f9d..110c623aaef 100644 --- a/actions/setup/js/safe_output_helpers.test.cjs +++ b/actions/setup/js/safe_output_helpers.test.cjs @@ -272,6 +272,24 @@ describe("safe_output_helpers", () => { expect(result.contextType).toBe("pull request"); }); + it("should resolve issue_comment on PR context for PR-only handlers", () => { + const result = helpers.resolveTarget({ + ...baseParams, + context: { + eventName: "issue_comment", + payload: { + issue: { + number: 246, + pull_request: { url: "https://api.github.com/repos/o/r/pulls/246" }, + }, + }, + }, + }); + expect(result.success).toBe(true); + expect(result.number).toBe(246); + expect(result.contextType).toBe("pull request"); + }); + it("should fail when triggering and not in PR context", () => { const result = helpers.resolveTarget({ ...baseParams, diff --git a/actions/setup/js/submit_pr_review.test.cjs b/actions/setup/js/submit_pr_review.test.cjs index 572a7c91378..f591de328be 100644 --- a/actions/setup/js/submit_pr_review.test.cjs +++ b/actions/setup/js/submit_pr_review.test.cjs @@ -418,6 +418,61 @@ describe("submit_pr_review (Handler Factory Architecture)", () => { delete global.context; }); + it("should set review context from issue_comment on a PR for body-only reviews", async () => { + global.github = { + rest: { + pulls: { + get: vi.fn().mockResolvedValue({ + data: { + number: 42, + head: { sha: "issue-comment-pr-sha" }, + }, + }), + }, + }, + graphql: vi.fn().mockResolvedValue({}), + }; + + global.context = { + eventName: "issue_comment", + repo: { owner: "test-owner", repo: "test-repo" }, + payload: { + issue: { + number: 42, + pull_request: { url: "https://api.github.com/repos/test-owner/test-repo/pulls/42" }, + }, + }, + }; + + const localBuffer = createReviewBuffer(); + const { main } = require("./submit_pr_review.cjs"); + const localHandler = await main({ max: 1, _prReviewBuffer: localBuffer }); + + const result = await localHandler( + { + type: "submit_pull_request_review", + body: "Looks good overall.", + event: "COMMENT", + }, + {} + ); + + expect(result.success).toBe(true); + expect(localBuffer.hasReviewMetadata()).toBe(true); + const ctx = localBuffer.getReviewContext(); + expect(ctx).not.toBeNull(); + expect(ctx.repo).toBe("test-owner/test-repo"); + expect(ctx.pullRequestNumber).toBe(42); + expect(global.github.rest.pulls.get).toHaveBeenCalledWith({ + owner: "test-owner", + repo: "test-repo", + pull_number: 42, + }); + + delete global.context; + delete global.github; + }); + it("should set review context from target config when explicit PR number (e.g. workflow_dispatch)", async () => { const fetchedPR = { number: 99, From 842a49f98f59a8ed7013e622b54d02342b595679 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 04:17:02 -0700 Subject: [PATCH 13/16] Import shared/observability-otlp.md in most agentic workflows (#30995) --- .github/workflows/ab-testing-advisor.lock.yml | 69 +++++++++--- .github/workflows/ab-testing-advisor.md | 3 + .github/workflows/ace-editor.lock.yml | 73 +++++++++--- .github/workflows/ace-editor.md | 3 + .../agent-performance-analyzer.lock.yml | 66 ++++++++--- .../workflows/agent-performance-analyzer.md | 2 + .../workflows/agent-persona-explorer.lock.yml | 66 ++++++++--- .github/workflows/agent-persona-explorer.md | 2 + .github/workflows/ai-moderator.lock.yml | 77 +++++++++---- .github/workflows/ai-moderator.md | 3 + .../workflows/api-consumption-report.lock.yml | 28 ++--- .github/workflows/api-consumption-report.md | 2 + .github/workflows/approach-validator.lock.yml | 66 ++++++++--- .github/workflows/approach-validator.md | 2 + .github/workflows/archie.lock.yml | 66 ++++++++--- .github/workflows/archie.md | 2 + .../workflows/architecture-guardian.lock.yml | 66 ++++++++--- .github/workflows/architecture-guardian.md | 2 + .github/workflows/artifacts-summary.lock.yml | 66 ++++++++--- .github/workflows/artifacts-summary.md | 2 + .github/workflows/audit-workflows.lock.yml | 28 ++--- .github/workflows/audit-workflows.md | 2 + .github/workflows/auto-triage-issues.lock.yml | 66 ++++++++--- .github/workflows/auto-triage-issues.md | 2 + .../aw-failure-investigator.lock.yml | 66 ++++++++--- .github/workflows/aw-failure-investigator.md | 2 + .github/workflows/blog-auditor.lock.yml | 28 ++--- .github/workflows/blog-auditor.md | 2 + .github/workflows/bot-detection.lock.yml | 69 +++++++++--- .github/workflows/bot-detection.md | 3 + .github/workflows/brave.lock.yml | 66 ++++++++--- .github/workflows/brave.md | 2 + .../breaking-change-checker.lock.yml | 66 ++++++++--- .github/workflows/breaking-change-checker.md | 2 + .github/workflows/changeset.lock.yml | 78 +++++++++---- .github/workflows/changeset.md | 2 + .github/workflows/ci-coach.lock.yml | 70 +++++++++--- .github/workflows/ci-coach.md | 2 + .github/workflows/ci-doctor.lock.yml | 69 +++++++++--- .github/workflows/ci-doctor.md | 3 + .../claude-code-user-docs-review.lock.yml | 28 ++--- .../workflows/claude-code-user-docs-review.md | 2 + .../cli-consistency-checker.lock.yml | 69 +++++++++--- .github/workflows/cli-consistency-checker.md | 3 + .../workflows/cli-version-checker.lock.yml | 66 ++++++++--- .github/workflows/cli-version-checker.md | 2 + .github/workflows/cloclo.lock.yml | 70 +++++++++--- .github/workflows/cloclo.md | 2 + .../workflows/code-scanning-fixer.lock.yml | 70 +++++++++--- .github/workflows/code-scanning-fixer.md | 2 + .github/workflows/code-simplifier.lock.yml | 70 +++++++++--- .github/workflows/code-simplifier.md | 2 + .../codex-github-remote-mcp-test.lock.yml | 81 +++++++++---- .../workflows/codex-github-remote-mcp-test.md | 3 + .../commit-changes-analyzer.lock.yml | 66 ++++++++--- .github/workflows/commit-changes-analyzer.md | 2 + .../constraint-solving-potd.lock.yml | 69 +++++++++--- .github/workflows/constraint-solving-potd.md | 3 + .github/workflows/contribution-check.lock.yml | 67 ++++++++--- .github/workflows/contribution-check.md | 3 + .../workflows/copilot-agent-analysis.lock.yml | 28 ++--- .github/workflows/copilot-agent-analysis.md | 2 + .../copilot-cli-deep-research.lock.yml | 66 ++++++++--- .../workflows/copilot-cli-deep-research.md | 2 + .github/workflows/copilot-opt.lock.yml | 66 ++++++++--- .github/workflows/copilot-opt.md | 2 + .../copilot-pr-merged-report.lock.yml | 36 +++--- .github/workflows/copilot-pr-merged-report.md | 2 + .../copilot-pr-nlp-analysis.lock.yml | 26 ++--- .github/workflows/copilot-pr-nlp-analysis.md | 2 + .../copilot-pr-prompt-analysis.lock.yml | 28 ++--- .../workflows/copilot-pr-prompt-analysis.md | 2 + .../copilot-session-insights.lock.yml | 28 ++--- .github/workflows/copilot-session-insights.md | 2 + .../workflows/copilot-token-audit.lock.yml | 31 ++--- .github/workflows/copilot-token-audit.md | 3 + .../copilot-token-optimizer.lock.yml | 31 ++--- .github/workflows/copilot-token-optimizer.md | 3 + .github/workflows/craft.lock.yml | 73 +++++++++--- .github/workflows/craft.md | 3 + .../daily-architecture-diagram.lock.yml | 32 +++--- .../workflows/daily-architecture-diagram.md | 2 + ...strostylelite-markdown-spellcheck.lock.yml | 30 ++--- ...aily-astrostylelite-markdown-spellcheck.md | 2 + ...daily-aw-cross-repo-compile-check.lock.yml | 26 ++--- .../daily-aw-cross-repo-compile-check.md | 2 + .../daily-cache-strategy-analyzer.lock.yml | 46 ++++---- .../daily-cache-strategy-analyzer.md | 2 + .../daily-caveman-optimizer.lock.yml | 30 ++--- .github/workflows/daily-caveman-optimizer.md | 2 + .../workflows/daily-cli-performance.lock.yml | 44 ++++---- .github/workflows/daily-cli-performance.md | 2 + .../workflows/daily-cli-tools-tester.lock.yml | 28 ++--- .github/workflows/daily-cli-tools-tester.md | 2 + .github/workflows/daily-code-metrics.lock.yml | 28 ++--- .github/workflows/daily-code-metrics.md | 2 + .../workflows/daily-compiler-quality.lock.yml | 28 ++--- .github/workflows/daily-compiler-quality.md | 2 + ...ly-compiler-threat-spec-optimizer.lock.yml | 32 +++--- .../daily-compiler-threat-spec-optimizer.md | 2 + .github/workflows/daily-doc-healer.lock.yml | 32 +++--- .github/workflows/daily-doc-healer.md | 2 + .../daily-experiment-report.lock.yml | 28 ++--- .github/workflows/daily-experiment-report.md | 2 + .github/workflows/daily-fact.lock.yml | 12 +- .../workflows/daily-firewall-report.lock.yml | 28 ++--- .github/workflows/daily-firewall-report.md | 2 + .../workflows/daily-function-namer.lock.yml | 28 ++--- .github/workflows/daily-function-namer.md | 2 + .../workflows/daily-geo-optimizer.lock.yml | 28 ++--- .github/workflows/daily-geo-optimizer.md | 2 + ...fana-otel-instrumentation-advisor.lock.yml | 28 ++--- ...ly-grafana-otel-instrumentation-advisor.md | 2 + .github/workflows/daily-hippo-learn.lock.yml | 38 +++---- .github/workflows/daily-hippo-learn.md | 2 + .../workflows/daily-issues-report.lock.yml | 28 ++--- .github/workflows/daily-issues-report.md | 2 + .../daily-malicious-code-scan.lock.yml | 28 ++--- .../workflows/daily-malicious-code-scan.md | 2 + .../daily-mcp-concurrency-analysis.lock.yml | 28 ++--- .../daily-mcp-concurrency-analysis.md | 2 + .../workflows/daily-model-inventory.lock.yml | 26 ++--- .github/workflows/daily-model-inventory.md | 2 + .../daily-multi-device-docs-tester.lock.yml | 28 ++--- .../daily-multi-device-docs-tester.md | 2 + .github/workflows/daily-news.lock.yml | 28 ++--- .github/workflows/daily-news.md | 2 + .../daily-observability-report.lock.yml | 48 ++++---- .../workflows/daily-observability-report.md | 2 + ...aily-otel-instrumentation-advisor.lock.yml | 28 ++--- .../daily-otel-instrumentation-advisor.md | 2 + .../daily-performance-summary.lock.yml | 48 ++++---- .../workflows/daily-performance-summary.md | 2 + .github/workflows/daily-regulatory.lock.yml | 48 ++++---- .github/workflows/daily-regulatory.md | 2 + .../daily-rendering-scripts-verifier.lock.yml | 32 +++--- .../daily-rendering-scripts-verifier.md | 2 + .../workflows/daily-repo-chronicle.lock.yml | 28 ++--- .github/workflows/daily-repo-chronicle.md | 2 + .../daily-safe-output-integrator.lock.yml | 32 +++--- .../workflows/daily-safe-output-integrator.md | 2 + .../daily-safe-output-optimizer.lock.yml | 28 ++--- .../workflows/daily-safe-output-optimizer.md | 2 + .../daily-safe-outputs-conformance.lock.yml | 28 ++--- .../daily-safe-outputs-conformance.md | 2 + .../workflows/daily-secrets-analysis.lock.yml | 28 ++--- .github/workflows/daily-secrets-analysis.md | 2 + .../daily-security-observability.lock.yml | 28 ++--- .../workflows/daily-security-observability.md | 2 + .../daily-security-red-team.lock.yml | 28 ++--- .github/workflows/daily-security-red-team.md | 2 + .../workflows/daily-sentrux-report.lock.yml | 28 ++--- .github/workflows/daily-sentrux-report.md | 2 + .../workflows/daily-skill-optimizer.lock.yml | 26 ++--- .github/workflows/daily-skill-optimizer.md | 2 + .../daily-spdd-spec-planner.lock.yml | 66 ++++++++--- .github/workflows/daily-spdd-spec-planner.md | 2 + .../daily-subagent-optimizer.lock.yml | 66 ++++++++--- .github/workflows/daily-subagent-optimizer.md | 2 + .../daily-syntax-error-quality.lock.yml | 28 ++--- .../workflows/daily-syntax-error-quality.md | 2 + .../daily-team-evolution-insights.lock.yml | 28 ++--- .../daily-team-evolution-insights.md | 2 + .github/workflows/daily-team-status.lock.yml | 28 ++--- .github/workflows/daily-team-status.md | 2 + .../daily-token-consumption-report.lock.yml | 28 ++--- .../daily-token-consumption-report.md | 2 + .github/workflows/dead-code-remover.lock.yml | 70 +++++++++--- .github/workflows/dead-code-remover.md | 2 + .github/workflows/deep-report.lock.yml | 66 ++++++++--- .github/workflows/deep-report.md | 2 + .github/workflows/delight.lock.yml | 28 ++--- .github/workflows/delight.md | 2 + .github/workflows/dependabot-burner.lock.yml | 66 ++++++++--- .github/workflows/dependabot-burner.md | 2 + .../workflows/dependabot-go-checker.lock.yml | 66 ++++++++--- .github/workflows/dependabot-go-checker.md | 2 + .github/workflows/dependabot-repair.lock.yml | 73 +++++++++--- .github/workflows/dependabot-repair.md | 3 + .../deployment-incident-monitor.lock.yml | 69 +++++++++--- .../workflows/deployment-incident-monitor.md | 3 + .../workflows/design-decision-gate.lock.yml | 70 +++++++++--- .github/workflows/design-decision-gate.md | 2 + .github/workflows/dev-hawk.lock.yml | 66 ++++++++--- .github/workflows/dev-hawk.md | 2 + .github/workflows/dev.lock.yml | 57 +++++++--- .github/workflows/dev.md | 3 + .../developer-docs-consolidator.lock.yml | 32 +++--- .../workflows/developer-docs-consolidator.md | 2 + .github/workflows/dictation-prompt.lock.yml | 70 +++++++++--- .github/workflows/dictation-prompt.md | 2 + .../workflows/discussion-task-miner.lock.yml | 66 ++++++++--- .github/workflows/discussion-task-miner.md | 2 + .github/workflows/docs-noob-tester.lock.yml | 28 ++--- .github/workflows/docs-noob-tester.md | 2 + .github/workflows/draft-pr-cleanup.lock.yml | 69 +++++++++--- .github/workflows/draft-pr-cleanup.md | 3 + .../duplicate-code-detector.lock.yml | 86 +++++++++----- .github/workflows/duplicate-code-detector.md | 2 + .../example-permissions-warning.lock.yml | 73 +++++++++--- .../workflows/example-permissions-warning.md | 3 + .../example-workflow-analyzer.lock.yml | 28 ++--- .../workflows/example-workflow-analyzer.md | 2 + .github/workflows/firewall-escape.lock.yml | 69 +++++++++--- .github/workflows/firewall-escape.md | 3 + .github/workflows/firewall.lock.yml | 73 +++++++++--- .github/workflows/firewall.md | 3 + .../workflows/functional-pragmatist.lock.yml | 70 +++++++++--- .github/workflows/functional-pragmatist.md | 2 + .../github-mcp-structural-analysis.lock.yml | 28 ++--- .../github-mcp-structural-analysis.md | 2 + .../github-mcp-tools-report.lock.yml | 32 +++--- .github/workflows/github-mcp-tools-report.md | 2 + .../github-remote-mcp-auth-test.lock.yml | 28 ++--- .../workflows/github-remote-mcp-auth-test.md | 2 + .../workflows/glossary-maintainer.lock.yml | 70 +++++++++--- .github/workflows/glossary-maintainer.md | 2 + .github/workflows/go-fan.lock.yml | 66 ++++++++--- .github/workflows/go-fan.md | 2 + .github/workflows/go-logger.lock.yml | 86 +++++++++----- .github/workflows/go-logger.md | 2 + .../workflows/go-pattern-detector.lock.yml | 66 ++++++++--- .github/workflows/go-pattern-detector.md | 2 + .github/workflows/gpclean.lock.yml | 66 ++++++++--- .github/workflows/gpclean.md | 2 + .github/workflows/grumpy-reviewer.lock.yml | 86 +++++++++----- .github/workflows/grumpy-reviewer.md | 2 + .github/workflows/hippo-embed.lock.yml | 82 ++++++++++---- .github/workflows/hippo-embed.md | 2 + .github/workflows/hourly-ci-cleaner.lock.yml | 70 +++++++++--- .github/workflows/hourly-ci-cleaner.md | 2 + .../workflows/instructions-janitor.lock.yml | 73 +++++++++--- .github/workflows/instructions-janitor.md | 3 + .github/workflows/issue-arborist.lock.yml | 86 +++++++++----- .github/workflows/issue-arborist.md | 2 + .github/workflows/issue-monster.lock.yml | 66 ++++++++--- .github/workflows/issue-monster.md | 2 + .github/workflows/issue-triage-agent.lock.yml | 66 ++++++++--- .github/workflows/issue-triage-agent.md | 2 + .github/workflows/jsweep.lock.yml | 73 +++++++++--- .github/workflows/jsweep.md | 3 + .../workflows/layout-spec-maintainer.lock.yml | 73 +++++++++--- .github/workflows/layout-spec-maintainer.md | 3 + .github/workflows/lockfile-stats.lock.yml | 28 ++--- .github/workflows/lockfile-stats.md | 2 + .../mattpocock-skills-reviewer.lock.yml | 66 ++++++++--- .../workflows/mattpocock-skills-reviewer.md | 2 + .github/workflows/mcp-inspector.lock.yml | 28 ++--- .github/workflows/mcp-inspector.md | 2 + .github/workflows/mergefest.lock.yml | 73 +++++++++--- .github/workflows/mergefest.md | 3 + .github/workflows/metrics-collector.lock.yml | 70 +++++++++--- .github/workflows/metrics-collector.md | 2 + .../workflows/notion-issue-summary.lock.yml | 66 ++++++++--- .github/workflows/notion-issue-summary.md | 2 + .github/workflows/org-health-report.lock.yml | 66 ++++++++--- .github/workflows/org-health-report.md | 2 + .github/workflows/pdf-summary.lock.yml | 66 ++++++++--- .github/workflows/pdf-summary.md | 2 + .github/workflows/plan.lock.yml | 69 +++++++++--- .github/workflows/plan.md | 3 + .github/workflows/poem-bot.lock.yml | 70 +++++++++--- .github/workflows/poem-bot.md | 2 + .../pr-code-quality-reviewer.lock.yml | 66 ++++++++--- .github/workflows/pr-code-quality-reviewer.md | 2 + .../workflows/pr-nitpick-reviewer.lock.yml | 66 ++++++++--- .github/workflows/pr-nitpick-reviewer.md | 2 + .github/workflows/pr-triage-agent.lock.yml | 66 ++++++++--- .github/workflows/pr-triage-agent.md | 2 + .../prompt-clustering-analysis.lock.yml | 28 ++--- .../workflows/prompt-clustering-analysis.md | 2 + .github/workflows/python-data-charts.lock.yml | 66 ++++++++--- .github/workflows/python-data-charts.md | 2 + .github/workflows/q.lock.yml | 70 +++++++++--- .github/workflows/q.md | 2 + .../workflows/refactoring-cadence.lock.yml | 66 ++++++++--- .github/workflows/refactoring-cadence.md | 2 + .github/workflows/refiner.lock.yml | 70 +++++++++--- .github/workflows/refiner.md | 2 + .github/workflows/release.lock.yml | 66 ++++++++--- .github/workflows/release.md | 2 + .../workflows/repo-audit-analyzer.lock.yml | 28 ++--- .github/workflows/repo-audit-analyzer.md | 2 + .github/workflows/repo-tree-map.lock.yml | 66 ++++++++--- .github/workflows/repo-tree-map.md | 2 + .../repository-quality-improver.lock.yml | 28 ++--- .../workflows/repository-quality-improver.md | 2 + .github/workflows/research.lock.yml | 66 ++++++++--- .github/workflows/research.md | 2 + .github/workflows/safe-output-health.lock.yml | 28 ++--- .github/workflows/safe-output-health.md | 2 + .../schema-consistency-checker.lock.yml | 28 ++--- .../workflows/schema-consistency-checker.md | 2 + .../schema-feature-coverage.lock.yml | 93 ++++++++++----- .github/workflows/schema-feature-coverage.md | 3 + .github/workflows/scout.lock.yml | 66 ++++++++--- .github/workflows/scout.md | 2 + .../workflows/security-compliance.lock.yml | 69 +++++++++--- .github/workflows/security-compliance.md | 3 + .github/workflows/security-review.lock.yml | 66 ++++++++--- .github/workflows/security-review.md | 2 + .../semantic-function-refactor.lock.yml | 66 ++++++++--- .../workflows/semantic-function-refactor.md | 2 + .github/workflows/sergo.lock.yml | 28 ++--- .github/workflows/sergo.md | 2 + .../workflows/slide-deck-maintainer.lock.yml | 70 +++++++++--- .github/workflows/slide-deck-maintainer.md | 2 + .../workflows/smoke-call-workflow.lock.yml | 12 +- .github/workflows/smoke-ci.lock.yml | 73 +++++++++--- .github/workflows/smoke-ci.md | 3 + .github/workflows/smoke-claude.lock.yml | 106 ++++++++++++------ .github/workflows/smoke-claude.md | 2 + .github/workflows/smoke-codex.lock.yml | 64 +++++------ .github/workflows/smoke-codex.md | 2 + .github/workflows/smoke-copilot-arm.lock.yml | 52 ++++----- .github/workflows/smoke-copilot-arm.md | 2 + .github/workflows/smoke-copilot.lock.yml | 94 +++++++++++----- .github/workflows/smoke-copilot.md | 2 + .github/workflows/smoke-crush.lock.yml | 78 +++++++++---- .github/workflows/smoke-crush.md | 2 + .github/workflows/smoke-gemini.lock.yml | 40 +++---- .github/workflows/smoke-gemini.md | 2 + .github/workflows/smoke-opencode.lock.yml | 40 +++---- .github/workflows/smoke-opencode.md | 2 + .github/workflows/smoke-pi.lock.yml | 36 +++--- .github/workflows/smoke-pi.md | 2 + .../smoke-workflow-call-with-inputs.lock.yml | 77 ++++++++++--- .../smoke-workflow-call-with-inputs.md | 3 + .github/workflows/spec-enforcer.lock.yml | 70 +++++++++--- .github/workflows/spec-enforcer.md | 2 + .github/workflows/spec-extractor.lock.yml | 70 +++++++++--- .github/workflows/spec-extractor.md | 2 + .github/workflows/spec-librarian.lock.yml | 66 ++++++++--- .github/workflows/spec-librarian.md | 2 + .github/workflows/stale-pr-cleanup.lock.yml | 69 +++++++++--- .github/workflows/stale-pr-cleanup.md | 3 + .../workflows/stale-repo-identifier.lock.yml | 28 ++--- .github/workflows/stale-repo-identifier.md | 2 + .../workflows/static-analysis-report.lock.yml | 66 ++++++++--- .github/workflows/static-analysis-report.md | 2 + .../workflows/step-name-alignment.lock.yml | 69 +++++++++--- .github/workflows/step-name-alignment.md | 3 + .github/workflows/sub-issue-closer.lock.yml | 69 +++++++++--- .github/workflows/sub-issue-closer.md | 3 + .github/workflows/super-linter.lock.yml | 66 ++++++++--- .github/workflows/super-linter.md | 2 + .../workflows/technical-doc-writer.lock.yml | 70 +++++++++--- .github/workflows/technical-doc-writer.md | 2 + .github/workflows/terminal-stylist.lock.yml | 28 ++--- .github/workflows/terminal-stylist.md | 2 + .../test-create-pr-error-handling.lock.yml | 73 +++++++++--- .../test-create-pr-error-handling.md | 3 + .github/workflows/test-dispatcher.lock.yml | 69 +++++++++--- .github/workflows/test-dispatcher.md | 3 + .../test-project-url-default.lock.yml | 69 +++++++++--- .github/workflows/test-project-url-default.md | 3 + .../workflows/test-quality-sentinel.lock.yml | 66 ++++++++--- .github/workflows/test-quality-sentinel.md | 2 + .github/workflows/test-workflow.lock.yml | 73 +++++++++--- .github/workflows/test-workflow.md | 3 + .github/workflows/tidy.lock.yml | 73 +++++++++--- .github/workflows/tidy.md | 3 + .github/workflows/typist.lock.yml | 28 ++--- .github/workflows/typist.md | 2 + .../workflows/ubuntu-image-analyzer.lock.yml | 70 +++++++++--- .github/workflows/ubuntu-image-analyzer.md | 2 + .github/workflows/unbloat-docs.lock.yml | 70 +++++++++--- .github/workflows/unbloat-docs.md | 2 + .github/workflows/update-astro.lock.yml | 73 +++++++++--- .github/workflows/update-astro.md | 3 + .github/workflows/video-analyzer.lock.yml | 66 ++++++++--- .github/workflows/video-analyzer.md | 2 + .../visual-regression-checker.lock.yml | 69 +++++++++--- .../workflows/visual-regression-checker.md | 3 + .../weekly-blog-post-writer.lock.yml | 70 +++++++++--- .github/workflows/weekly-blog-post-writer.md | 2 + .../weekly-editors-health-check.lock.yml | 73 +++++++++--- .../workflows/weekly-editors-health-check.md | 3 + .../workflows/weekly-issue-summary.lock.yml | 28 ++--- .github/workflows/weekly-issue-summary.md | 2 + .../weekly-safe-outputs-spec-review.lock.yml | 70 +++++++++--- .../weekly-safe-outputs-spec-review.md | 2 + .github/workflows/workflow-generator.lock.yml | 66 ++++++++--- .github/workflows/workflow-generator.md | 2 + .../workflow-health-manager.lock.yml | 66 ++++++++--- .github/workflows/workflow-health-manager.md | 2 + .../workflows/workflow-normalizer.lock.yml | 66 ++++++++--- .github/workflows/workflow-normalizer.md | 2 + .../workflow-skill-extractor.lock.yml | 66 ++++++++--- .github/workflows/workflow-skill-extractor.md | 2 + 390 files changed, 7821 insertions(+), 3265 deletions(-) diff --git a/.github/workflows/ab-testing-advisor.lock.yml b/.github/workflows/ab-testing-advisor.lock.yml index 97983797a7b..691c3399860 100644 --- a/.github/workflows/ab-testing-advisor.lock.yml +++ b/.github/workflows/ab-testing-advisor.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"41abb433c380d73bcc74acb9e55cf049b3a8cd60e6b862d08a68d3943d9fdbe2","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9a8a79b136b921075e0c71962d8843c752e90083004be9144bedf73550bc9003","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,9 +24,15 @@ # # Daily A/B testing advisor that picks a random agentic workflow without an experiments section, devises an experiment campaign to improve it, and creates a GitHub issue with the implementation task # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -71,6 +77,13 @@ concurrency: run-name: "Daily A/B Testing Advisor" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -106,6 +119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -181,21 +196,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_23d0689b2abd6f2e_EOF' + cat << 'GH_AW_PROMPT_77d23a33ef01d13a_EOF' - GH_AW_PROMPT_23d0689b2abd6f2e_EOF + GH_AW_PROMPT_77d23a33ef01d13a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_23d0689b2abd6f2e_EOF' + cat << 'GH_AW_PROMPT_77d23a33ef01d13a_EOF' Tools: create_issue(max:2), missing_tool, missing_data, noop - GH_AW_PROMPT_23d0689b2abd6f2e_EOF + GH_AW_PROMPT_77d23a33ef01d13a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_23d0689b2abd6f2e_EOF' + cat << 'GH_AW_PROMPT_77d23a33ef01d13a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -224,13 +239,14 @@ jobs: {{/if}} - GH_AW_PROMPT_23d0689b2abd6f2e_EOF + GH_AW_PROMPT_77d23a33ef01d13a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_23d0689b2abd6f2e_EOF' + cat << 'GH_AW_PROMPT_77d23a33ef01d13a_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/ab-testing-advisor.md}} - GH_AW_PROMPT_23d0689b2abd6f2e_EOF + GH_AW_PROMPT_77d23a33ef01d13a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -370,6 +386,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -461,9 +479,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_194b128aaf5a5ef9_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_cd450fc70511f6a5_EOF' {"create_issue":{"close_older_issues":true,"close_older_key":"ab-testing-advisor","expires":336,"group":true,"labels":["automation","experiments","ai-generated"],"max":2,"title_prefix":"[ab-advisor] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_194b128aaf5a5ef9_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_cd450fc70511f6a5_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -661,11 +679,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_49a08fcd0bf47986_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c15128ac5f13fef1_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -687,10 +705,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_49a08fcd0bf47986_EOF + GH_AW_MCP_CONFIG_c15128ac5f13fef1_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -923,6 +947,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -956,6 +989,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1422,6 +1457,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Daily A/B Testing Advisor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ab-testing-advisor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/ab-testing-advisor.md b/.github/workflows/ab-testing-advisor.md index f26546a7869..dde3aa4db4a 100644 --- a/.github/workflows/ab-testing-advisor.md +++ b/.github/workflows/ab-testing-advisor.md @@ -26,6 +26,8 @@ network: allowed: - defaults +imports: + - shared/observability-otlp.md tools: cli-proxy: true cache-memory: true @@ -71,6 +73,7 @@ safe-outputs: features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/ace-editor.lock.yml b/.github/workflows/ace-editor.lock.yml index 27b7aace888..a8814e612a7 100644 --- a/.github/workflows/ace-editor.lock.yml +++ b/.github/workflows/ace-editor.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e62af133a5a0fc20765af5b7d6d3fa73aded5a3fd0b0e44e22cab76f63809c4c","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6d5aafde7712b01923337ac46b801dfdd5e9ac02a91c9b41a9cd40ac580ef4e3","agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,10 +24,16 @@ # # Generates an ACE editor session link when invoked with /ace command on pull request comments # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -59,6 +65,13 @@ concurrency: run-name: "ACE Editor Session" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -102,6 +115,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -218,23 +233,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_0571c40b9b9857c4_EOF' + cat << 'GH_AW_PROMPT_eec6611805947a64_EOF' - GH_AW_PROMPT_0571c40b9b9857c4_EOF + GH_AW_PROMPT_eec6611805947a64_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_0571c40b9b9857c4_EOF' + cat << 'GH_AW_PROMPT_eec6611805947a64_EOF' Tools: create_issue - GH_AW_PROMPT_0571c40b9b9857c4_EOF + GH_AW_PROMPT_eec6611805947a64_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_auto_create_issue.md" - cat << 'GH_AW_PROMPT_0571c40b9b9857c4_EOF' + cat << 'GH_AW_PROMPT_eec6611805947a64_EOF' - GH_AW_PROMPT_0571c40b9b9857c4_EOF + GH_AW_PROMPT_eec6611805947a64_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_0571c40b9b9857c4_EOF' + cat << 'GH_AW_PROMPT_eec6611805947a64_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -263,12 +278,13 @@ jobs: {{/if}} - GH_AW_PROMPT_0571c40b9b9857c4_EOF + GH_AW_PROMPT_eec6611805947a64_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_0571c40b9b9857c4_EOF' + cat << 'GH_AW_PROMPT_eec6611805947a64_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/ace-editor.md}} - GH_AW_PROMPT_0571c40b9b9857c4_EOF + GH_AW_PROMPT_eec6611805947a64_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -401,6 +417,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -457,9 +475,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ec7fd3c6c8a3ce92_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0f4b7414d0dba99a_EOF' {"create_issue":{"labels":["ace-editor"],"max":1,"title_prefix":"[ace-editor]"}} - GH_AW_SAFE_OUTPUTS_CONFIG_ec7fd3c6c8a3ce92_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_0f4b7414d0dba99a_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -587,11 +605,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_d61e5450e9a741b8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_e4136b9e2e7ea1f0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -629,10 +647,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_d61e5450e9a741b8_EOF + GH_AW_MCP_CONFIG_e4136b9e2e7ea1f0_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -821,6 +845,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -843,6 +876,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/awf-config.json @@ -1084,6 +1119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "ACE Editor Session" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ace-editor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/ace-editor.md b/.github/workflows/ace-editor.md index 2e0104f24ec..9ad13a0af25 100644 --- a/.github/workflows/ace-editor.md +++ b/.github/workflows/ace-editor.md @@ -35,8 +35,11 @@ jobs: issue_number: prNumber, body: `👋 Hey @${actor}! Here's your ACE editor session link for this pull request:\n\n🔗 **${aceUrl}**\n\nCopy and paste this link into Slack to invite your teammates into the session! 🚀`, }); +imports: + - shared/observability-otlp.md tools: cli-proxy: true + --- Classic action that generates an ACE editor session link on pull request comment slash command. diff --git a/.github/workflows/agent-performance-analyzer.lock.yml b/.github/workflows/agent-performance-analyzer.lock.yml index 053c2ecd70a..4d1d7aeb839 100644 --- a/.github/workflows/agent-performance-analyzer.lock.yml +++ b/.github/workflows/agent-performance-analyzer.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4e381be91f6794d308adfc7ce3d3ff611e46f1ba515ffdae710885f83405042a","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"653d5fa9e08560c1f7d3d708058733e4d31c248180342fcfa8dc81f69c187ec6","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,11 +27,14 @@ # Resolved workflow manifest: # Imports: # - shared/meta-analysis-base.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -74,6 +77,13 @@ concurrency: run-name: "Agent Performance Analyzer - Meta-Orchestrator" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -106,6 +116,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -182,22 +194,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_a164d17912637982_EOF' + cat << 'GH_AW_PROMPT_c9ae378945388f59_EOF' - GH_AW_PROMPT_a164d17912637982_EOF + GH_AW_PROMPT_c9ae378945388f59_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_a164d17912637982_EOF' + cat << 'GH_AW_PROMPT_c9ae378945388f59_EOF' Tools: add_comment(max:10), create_issue(max:5), create_discussion(max:2), missing_tool, missing_data, noop - GH_AW_PROMPT_a164d17912637982_EOF + GH_AW_PROMPT_c9ae378945388f59_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_a164d17912637982_EOF' + cat << 'GH_AW_PROMPT_c9ae378945388f59_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -226,17 +238,18 @@ jobs: {{/if}} - GH_AW_PROMPT_a164d17912637982_EOF + GH_AW_PROMPT_c9ae378945388f59_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_a164d17912637982_EOF' + cat << 'GH_AW_PROMPT_c9ae378945388f59_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/agent-performance-analyzer.md}} - GH_AW_PROMPT_a164d17912637982_EOF + GH_AW_PROMPT_c9ae378945388f59_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -381,6 +394,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -525,9 +540,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_1388cb0b91d4ef72_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_6d9f7b44815f920d_EOF' {"add_comment":{"max":10},"create_discussion":{"expires":24,"fallback_to_issue":true,"max":2},"create_issue":{"expires":48,"group":true,"labels":["cookie"],"max":5},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_1388cb0b91d4ef72_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_6d9f7b44815f920d_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -776,11 +791,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f02d95a2273deea6_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c0e0a73ce9237869_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -821,10 +836,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_f02d95a2273deea6_EOF + GH_AW_MCP_CONFIG_c0e0a73ce9237869_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1025,6 +1046,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1062,6 +1092,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1575,6 +1607,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Agent Performance Analyzer - Meta-Orchestrator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-performance-analyzer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/agent-performance-analyzer.md b/.github/workflows/agent-performance-analyzer.md index 2d1d750a440..a387de8e3d7 100644 --- a/.github/workflows/agent-performance-analyzer.md +++ b/.github/workflows/agent-performance-analyzer.md @@ -18,6 +18,7 @@ imports: with: toolsets: [default, actions, repos] - shared/reporting.md + - shared/observability-otlp.md safe-outputs: create-issue: expires: 2d @@ -33,6 +34,7 @@ timeout-minutes: 30 features: copilot-requests: true inline-agents: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/agent-persona-explorer.lock.yml b/.github/workflows/agent-persona-explorer.lock.yml index 1578e2b7542..de3bf9fd78a 100644 --- a/.github/workflows/agent-persona-explorer.lock.yml +++ b/.github/workflows/agent-persona-explorer.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6f10b0b64e2d95a4d26a32f10ab44a2815ca092e012fc04e60670606882bb37f","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"15c6423eefa21ed50dec0286ff949a40abe0308aa7a083c76357c9d7b0d0c302","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,12 +26,15 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -75,6 +78,13 @@ concurrency: run-name: "Agent Persona Explorer" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -108,6 +118,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -188,22 +200,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_7a1be3299129c2b7_EOF' + cat << 'GH_AW_PROMPT_b5bb4774f434e86d_EOF' - GH_AW_PROMPT_7a1be3299129c2b7_EOF + GH_AW_PROMPT_b5bb4774f434e86d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_7a1be3299129c2b7_EOF' + cat << 'GH_AW_PROMPT_b5bb4774f434e86d_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_7a1be3299129c2b7_EOF + GH_AW_PROMPT_b5bb4774f434e86d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_7a1be3299129c2b7_EOF' + cat << 'GH_AW_PROMPT_b5bb4774f434e86d_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -232,13 +244,14 @@ jobs: {{/if}} - GH_AW_PROMPT_7a1be3299129c2b7_EOF + GH_AW_PROMPT_b5bb4774f434e86d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_7a1be3299129c2b7_EOF' + cat << 'GH_AW_PROMPT_b5bb4774f434e86d_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/agent-persona-explorer.md}} - GH_AW_PROMPT_7a1be3299129c2b7_EOF + GH_AW_PROMPT_b5bb4774f434e86d_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -376,6 +389,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -525,9 +540,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_aa9eab4217bc80a7_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a475fd7782065270_EOF' {"create_discussion":{"category":"agent-research","close_older_discussions":true,"fallback_to_issue":true,"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_aa9eab4217bc80a7_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_a475fd7782065270_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -719,11 +734,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_9d0fe22c46461fcd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d968fb362d44d31a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -780,10 +795,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_9d0fe22c46461fcd_EOF + GH_AW_MCP_CONFIG_d968fb362d44d31a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -971,6 +992,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1004,6 +1034,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1413,6 +1445,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Agent Persona Explorer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/agent-persona-explorer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/agent-persona-explorer.md b/.github/workflows/agent-persona-explorer.md index 9c5ef7b5404..2a537a56d28 100644 --- a/.github/workflows/agent-persona-explorer.md +++ b/.github/workflows/agent-persona-explorer.md @@ -27,6 +27,8 @@ timeout-minutes: 180 imports: - shared/reporting.md + + - shared/observability-otlp.md --- # Agent Persona Explorer diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml index c88a1cc4c5d..2da71435e37 100644 --- a/.github/workflows/ai-moderator.lock.yml +++ b/.github/workflows/ai-moderator.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3c05411138f48de9801cb7b1f86f72a287725e44c6bb7c9cb360fa4eb6b0eb72","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f45626273b0fdb6de3629b57b6f3a6a73e05c66073af3cfc54f9218c043cb56c","strict":true,"agent_id":"codex"} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -23,10 +23,16 @@ # For more information: https://github.github.com/gh-aw/introduction/overview/ # # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - CODEX_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # - OPENAI_API_KEY # @@ -82,6 +88,13 @@ concurrency: run-name: "AI Moderator" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -123,6 +136,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.129.0" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -226,21 +241,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_2854fab51269987e_EOF' + cat << 'GH_AW_PROMPT_48734254de52c039_EOF' - GH_AW_PROMPT_2854fab51269987e_EOF + GH_AW_PROMPT_48734254de52c039_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_2854fab51269987e_EOF' + cat << 'GH_AW_PROMPT_48734254de52c039_EOF' Tools: add_labels, hide_comment(max:5), missing_tool, missing_data, noop - GH_AW_PROMPT_2854fab51269987e_EOF + GH_AW_PROMPT_48734254de52c039_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_2854fab51269987e_EOF' + cat << 'GH_AW_PROMPT_48734254de52c039_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -269,13 +284,14 @@ jobs: {{/if}} - GH_AW_PROMPT_2854fab51269987e_EOF + GH_AW_PROMPT_48734254de52c039_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_2854fab51269987e_EOF' + cat << 'GH_AW_PROMPT_48734254de52c039_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/ai-moderator.md}} - GH_AW_PROMPT_2854fab51269987e_EOF + GH_AW_PROMPT_48734254de52c039_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -411,6 +427,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - 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 @@ -486,9 +504,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_82ef2e5e487124ae_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_890976f04029c700_EOF' {"add_labels":{"allowed":["spam","ai-generated","link-spam","ai-inspected"],"target":"*"},"create_report_incomplete_issue":{},"hide_comment":{"allowed_reasons":["spam"],"max":5},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_82ef2e5e487124ae_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_890976f04029c700_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -696,9 +714,9 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_0e2e67c11e481d4b_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_d4b8ea5c0e330602_EOF [history] persistence = "none" @@ -725,11 +743,11 @@ jobs: [mcp_servers.safeoutputs."guard-policies".write-sink] accept = ["*"] - GH_AW_MCP_CONFIG_0e2e67c11e481d4b_EOF + GH_AW_MCP_CONFIG_d4b8ea5c0e330602_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_0e2e67c11e481d4b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d4b8ea5c0e330602_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -769,14 +787,20 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_0e2e67c11e481d4b_EOF + GH_AW_MCP_CONFIG_d4b8ea5c0e330602_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_b5beb8cfb546ae54_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_3c102dcdf77b1f46_EOF model_provider = "openai-proxy" @@ -788,7 +812,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "GH_AW_ASSETS_ALLOWED_EXTS", "GH_AW_ASSETS_BRANCH", "GH_AW_ASSETS_MAX_SIZE_KB", "GH_AW_SAFE_OUTPUTS", "GITHUB_PERSONAL_ACCESS_TOKEN", "GITHUB_REPOSITORY", "GITHUB_SERVER_URL", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_b5beb8cfb546ae54_EOF + GH_AW_CODEX_SHELL_POLICY_3c102dcdf77b1f46_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -954,6 +978,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -996,6 +1029,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/awf-config.json @@ -1250,6 +1285,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "AI Moderator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ai-moderator.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.129.0" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/ai-moderator.md b/.github/workflows/ai-moderator.md index 47339e5cdbc..2fbfd97aa6e 100644 --- a/.github/workflows/ai-moderator.md +++ b/.github/workflows/ai-moderator.md @@ -24,6 +24,8 @@ network: allowed: - defaults - github +imports: + - shared/observability-otlp.md tools: cli-proxy: true cache-memory: @@ -49,6 +51,7 @@ safe-outputs: threat-detection: false checkout: false + --- # AI Moderator diff --git a/.github/workflows/api-consumption-report.lock.yml b/.github/workflows/api-consumption-report.lock.yml index fb37cb12d14..0a4b1e2604b 100644 --- a/.github/workflows/api-consumption-report.lock.yml +++ b/.github/workflows/api-consumption-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8f7f5703d214e80c35a3895c6059d7315fbf39c67ea6e7633b63fb6ac2adfa71","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d5e4c223b74f48b6393e7e180fbc9fd8bff65ffebae0390bb4c8e592c3939cb7","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -207,24 +207,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_2a3fea36388c950d_EOF' + cat << 'GH_AW_PROMPT_2ed8e2a89c4f122b_EOF' - GH_AW_PROMPT_2a3fea36388c950d_EOF + GH_AW_PROMPT_2ed8e2a89c4f122b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_2a3fea36388c950d_EOF' + cat << 'GH_AW_PROMPT_2ed8e2a89c4f122b_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_2a3fea36388c950d_EOF + GH_AW_PROMPT_2ed8e2a89c4f122b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_2a3fea36388c950d_EOF' + cat << 'GH_AW_PROMPT_2ed8e2a89c4f122b_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -253,16 +253,16 @@ jobs: {{/if}} - GH_AW_PROMPT_2a3fea36388c950d_EOF + GH_AW_PROMPT_2ed8e2a89c4f122b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_2a3fea36388c950d_EOF' + cat << 'GH_AW_PROMPT_2ed8e2a89c4f122b_EOF' {{#runtime-import .github/workflows/shared/jqschema.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/trending-charts-simple.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/api-consumption-report.md}} - GH_AW_PROMPT_2a3fea36388c950d_EOF + GH_AW_PROMPT_2ed8e2a89c4f122b_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -576,9 +576,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_d31ffa9408e8ea21_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_cb4758322070deae_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[api-consumption] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_d31ffa9408e8ea21_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_cb4758322070deae_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -786,7 +786,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_c458ccd45ccd1bd6_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_e8c66d5ec234696f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -850,7 +850,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_c458ccd45ccd1bd6_EOF + GH_AW_MCP_CONFIG_e8c66d5ec234696f_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/api-consumption-report.md b/.github/workflows/api-consumption-report.md index 17f003bbf81..f8bbc41660f 100644 --- a/.github/workflows/api-consumption-report.md +++ b/.github/workflows/api-consumption-report.md @@ -28,6 +28,8 @@ imports: expires: 3d - shared/jqschema.md + + - shared/observability-otlp.md --- # GitHub API Consumption Report Agent diff --git a/.github/workflows/approach-validator.lock.yml b/.github/workflows/approach-validator.lock.yml index 91cd19d0c16..5fb95720a2c 100644 --- a/.github/workflows/approach-validator.lock.yml +++ b/.github/workflows/approach-validator.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"dac8ac168c64f7eac2c39a0dd339af6ccb10aea8ac5288b8f8377ed09544d72b","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7eee91b2d2e491a572c5783f79416ebf953b0a42fa9510c97995bafa598ba924","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,6 +26,7 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # - shared/safe-output-upload-artifact.md # @@ -33,6 +34,8 @@ # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -86,6 +89,13 @@ concurrency: run-name: "Approach Validator" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -128,6 +138,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -223,20 +235,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_5077ec4692f0b3d5_EOF' + cat << 'GH_AW_PROMPT_0688ae0bfc60309d_EOF' - GH_AW_PROMPT_5077ec4692f0b3d5_EOF + GH_AW_PROMPT_0688ae0bfc60309d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_5077ec4692f0b3d5_EOF' + cat << 'GH_AW_PROMPT_0688ae0bfc60309d_EOF' Tools: add_comment(max:2), add_labels, missing_tool, missing_data, noop - GH_AW_PROMPT_5077ec4692f0b3d5_EOF + GH_AW_PROMPT_0688ae0bfc60309d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_5077ec4692f0b3d5_EOF' + cat << 'GH_AW_PROMPT_0688ae0bfc60309d_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -265,14 +277,15 @@ jobs: {{/if}} - GH_AW_PROMPT_5077ec4692f0b3d5_EOF + GH_AW_PROMPT_0688ae0bfc60309d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_5077ec4692f0b3d5_EOF' + cat << 'GH_AW_PROMPT_0688ae0bfc60309d_EOF' {{#runtime-import .github/workflows/shared/safe-output-upload-artifact.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/approach-validator.md}} - GH_AW_PROMPT_5077ec4692f0b3d5_EOF + GH_AW_PROMPT_0688ae0bfc60309d_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -415,6 +428,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -495,9 +510,9 @@ jobs: mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs/upload-artifacts" - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ff302e2145638383_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d037e12d07e10dde_EOF' {"add_comment":{"hide_older_comments":true,"max":2},"add_labels":{"allowed":["awaiting-approach-approval","approach-approved","approach-rejected"],"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_artifact":{"max-size-bytes":104857600,"max-uploads":3,"retention-days":30,"skip-archive":true}} - GH_AW_SAFE_OUTPUTS_CONFIG_ff302e2145638383_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d037e12d07e10dde_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -701,10 +716,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_3ab403d28e64366e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ce9ac3f897054063_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -726,10 +741,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_3ab403d28e64366e_EOF + GH_AW_MCP_CONFIG_ce9ac3f897054063_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1002,6 +1023,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1031,6 +1061,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1491,6 +1523,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Approach Validator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/approach-validator.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/approach-validator.md b/.github/workflows/approach-validator.md index 1ccf8be151a..d140db77220 100644 --- a/.github/workflows/approach-validator.md +++ b/.github/workflows/approach-validator.md @@ -24,6 +24,7 @@ engine: claude imports: - shared/safe-output-upload-artifact.md - shared/reporting.md + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -49,6 +50,7 @@ safe-outputs: run-success: "✅ [{workflow_name}]({run_url}) completed the approach validation. Review the report and react with ✅ or ❌." run-failure: "❌ [{workflow_name}]({run_url}) {status} during approach validation." timeout-minutes: 30 + --- # Approach Validator 🔬 diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 83e8c863dd7..8f4f94a48e9 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9f175c71a30941bfa9f6fb8d9d02952c06707b28de9ca2f9bd6084efe3b170e1","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"25e043a10b12ae51af58407610eb74c0d4d1505510e0ae0ee2a45da4550964b7","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -28,10 +28,13 @@ # Imports: # - shared/mcp/serena-go.md # - shared/mcp/serena.md +# - shared/observability-otlp.md # # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -76,6 +79,13 @@ concurrency: run-name: "Archie" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -118,6 +128,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -233,20 +245,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_92f1a4ab497c8a82_EOF' + cat << 'GH_AW_PROMPT_2e7019d9465d12fb_EOF' - GH_AW_PROMPT_92f1a4ab497c8a82_EOF + GH_AW_PROMPT_2e7019d9465d12fb_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_92f1a4ab497c8a82_EOF' + cat << 'GH_AW_PROMPT_2e7019d9465d12fb_EOF' Tools: add_comment, missing_tool, missing_data, noop - GH_AW_PROMPT_92f1a4ab497c8a82_EOF + GH_AW_PROMPT_2e7019d9465d12fb_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_92f1a4ab497c8a82_EOF' + cat << 'GH_AW_PROMPT_2e7019d9465d12fb_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -275,12 +287,12 @@ jobs: {{/if}} - GH_AW_PROMPT_92f1a4ab497c8a82_EOF + GH_AW_PROMPT_2e7019d9465d12fb_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" if [ "$GITHUB_EVENT_NAME" = "issue_comment" ] && [ -n "$GH_AW_IS_PR_COMMENT" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review_comment" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review" ]; then cat "${RUNNER_TEMP}/gh-aw/prompts/pr_context_prompt.md" fi - cat << 'GH_AW_PROMPT_92f1a4ab497c8a82_EOF' + cat << 'GH_AW_PROMPT_2e7019d9465d12fb_EOF' ## Serena Code Analysis @@ -314,9 +326,10 @@ jobs: {{#runtime-import .github/workflows/shared/mcp/serena-go.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/archie.md}} - GH_AW_PROMPT_92f1a4ab497c8a82_EOF + GH_AW_PROMPT_2e7019d9465d12fb_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -461,6 +474,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -537,9 +552,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_05271e5d71df8ed9_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_756f1bb9f50d6955_EOF' {"add_comment":{"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_05271e5d71df8ed9_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_756f1bb9f50d6955_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -723,11 +738,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_9114a8c4d01168d2_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_0dc2d1bd00cd3635_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -778,10 +793,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_9114a8c4d01168d2_EOF + GH_AW_MCP_CONFIG_0dc2d1bd00cd3635_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -983,6 +1004,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1005,6 +1035,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1489,6 +1521,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Archie" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/archie.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/archie.md b/.github/workflows/archie.md index efa0b696156..6c3484d3dea 100644 --- a/.github/workflows/archie.md +++ b/.github/workflows/archie.md @@ -18,6 +18,7 @@ engine: strict: true imports: - shared/mcp/serena-go.md + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -39,6 +40,7 @@ safe-outputs: timeout-minutes: 10 features: copilot-requests: true + --- # Archie - Mermaid Diagram Generator diff --git a/.github/workflows/architecture-guardian.lock.yml b/.github/workflows/architecture-guardian.lock.yml index 677b399ca7d..59aa2f6d2ff 100644 --- a/.github/workflows/architecture-guardian.lock.yml +++ b/.github/workflows/architecture-guardian.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f148c31516ffd0cda3b9b9d3914dd7f67f3e6c3a48349b29094e927364362bd9","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bb8f7661c1bfc76aa95ca3ef66218ad4a9dcd30346f37f8c71361d181619518d","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - shared/activation-app.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/daily-issue-base.md # - shared/skip-if-issue-open.md @@ -35,6 +36,8 @@ # - GH_AW_AGENT_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -74,6 +77,13 @@ concurrency: run-name: "Architecture Guardian" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -109,6 +119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -184,20 +196,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_798f83143790c8c9_EOF' + cat << 'GH_AW_PROMPT_67808f6aac080696_EOF' - GH_AW_PROMPT_798f83143790c8c9_EOF + GH_AW_PROMPT_67808f6aac080696_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_798f83143790c8c9_EOF' + cat << 'GH_AW_PROMPT_67808f6aac080696_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_798f83143790c8c9_EOF + GH_AW_PROMPT_67808f6aac080696_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_798f83143790c8c9_EOF' + cat << 'GH_AW_PROMPT_67808f6aac080696_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -226,15 +238,16 @@ jobs: {{/if}} - GH_AW_PROMPT_798f83143790c8c9_EOF + GH_AW_PROMPT_67808f6aac080696_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_798f83143790c8c9_EOF' + cat << 'GH_AW_PROMPT_67808f6aac080696_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/architecture-guardian.md}} - GH_AW_PROMPT_798f83143790c8c9_EOF + GH_AW_PROMPT_67808f6aac080696_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -368,6 +381,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -454,9 +469,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d07cfa3669817e1e_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_1ed51482375d61d9_EOF' {"create_issue":{"assignees":["copilot"],"expires":48,"labels":["architecture","automated-analysis","cookie"],"max":1,"title_prefix":"[architecture-guardian] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_d07cfa3669817e1e_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_1ed51482375d61d9_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -657,11 +672,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_c35e7151f2e54948_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_0f64f3c957838a5a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -699,10 +714,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_c35e7151f2e54948_EOF + GH_AW_MCP_CONFIG_0f64f3c957838a5a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -907,6 +928,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -929,6 +959,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1399,6 +1431,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Architecture Guardian" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/architecture-guardian.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/architecture-guardian.md b/.github/workflows/architecture-guardian.md index 4c701467792..b4c4066a99b 100644 --- a/.github/workflows/architecture-guardian.md +++ b/.github/workflows/architecture-guardian.md @@ -19,6 +19,7 @@ imports: expires: "2d" labels: [architecture, automated-analysis, cookie] assignees: [copilot] + - shared/observability-otlp.md tools: cli-proxy: true bash: @@ -125,6 +126,7 @@ steps: FILE_COUNT=$(echo "$CHANGED_FILES" | wc -l | tr -d ' ') echo "✅ Pre-computed metrics for $FILE_COUNT file(s) → /tmp/gh-aw/agent/arch-metrics.json" + --- # Architecture Guardian diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 80ca399d030..c4b2e100b0a 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0f792dad241113b3c7e7118c507e6ff390e109ec501bc8eeaebe4d84c861e400","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2c7f041d5d452892232461e01d70aad2ad72817399e30b5c1438995b022dacee","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,12 +26,15 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # - shared/safe-output-app.md # # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -71,6 +74,13 @@ concurrency: run-name: "Artifacts Summary" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -103,6 +113,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -178,20 +190,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_10d4a653d14f32d1_EOF' + cat << 'GH_AW_PROMPT_c586d55188da71c6_EOF' - GH_AW_PROMPT_10d4a653d14f32d1_EOF + GH_AW_PROMPT_c586d55188da71c6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_10d4a653d14f32d1_EOF' + cat << 'GH_AW_PROMPT_c586d55188da71c6_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_10d4a653d14f32d1_EOF + GH_AW_PROMPT_c586d55188da71c6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_10d4a653d14f32d1_EOF' + cat << 'GH_AW_PROMPT_c586d55188da71c6_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -220,15 +232,16 @@ jobs: {{/if}} - GH_AW_PROMPT_10d4a653d14f32d1_EOF + GH_AW_PROMPT_c586d55188da71c6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_10d4a653d14f32d1_EOF' + cat << 'GH_AW_PROMPT_c586d55188da71c6_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/safe-output-app.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/artifacts-summary.md}} - GH_AW_PROMPT_10d4a653d14f32d1_EOF + GH_AW_PROMPT_c586d55188da71c6_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -359,6 +372,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -435,9 +450,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_55e2f7c39ad187f4_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_b643744e77439914_EOF' {"create_discussion":{"category":"artifacts","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_55e2f7c39ad187f4_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_b643744e77439914_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -625,11 +640,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_950bb5ed0c772859_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d80c7c7e593e8ab0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -651,10 +666,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_950bb5ed0c772859_EOF + GH_AW_MCP_CONFIG_d80c7c7e593e8ab0_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -855,6 +876,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -877,6 +907,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1285,6 +1317,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Artifacts Summary" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/artifacts-summary.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/artifacts-summary.md b/.github/workflows/artifacts-summary.md index 5923181add4..bbbd98022dd 100644 --- a/.github/workflows/artifacts-summary.md +++ b/.github/workflows/artifacts-summary.md @@ -31,8 +31,10 @@ strict: true imports: - shared/reporting.md - shared/safe-output-app.md + - shared/observability-otlp.md features: copilot-requests: true + --- # Artifacts Summary diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 648096a5f0b..97f41779813 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0c0daa793941c4ca6bf2ea024c89493964b7e8d92d7242c3b06b9152168a2dbd","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"43620e61da74dea1d1d5d7d111055882c9b96a703a37977301204eff39ed959b","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -208,9 +208,9 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_a48b8f0681a71fa0_EOF' + cat << 'GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF' - GH_AW_PROMPT_a48b8f0681a71fa0_EOF + GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" @@ -218,15 +218,15 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_a48b8f0681a71fa0_EOF' + cat << 'GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF' Tools: create_discussion, upload_asset(max:3), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_a48b8f0681a71fa0_EOF + GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_a48b8f0681a71fa0_EOF' + cat << 'GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -255,17 +255,17 @@ jobs: {{/if}} - GH_AW_PROMPT_a48b8f0681a71fa0_EOF + GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_a48b8f0681a71fa0_EOF' + cat << 'GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF' {{#runtime-import .github/workflows/shared/jqschema.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/trending-charts-simple.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/audit-workflows.md}} - GH_AW_PROMPT_a48b8f0681a71fa0_EOF + GH_AW_PROMPT_7e337aa8d9cdd6ba_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -596,9 +596,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_c4781b769b8efd62_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_93bd7435df2943e9_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[audit-workflows] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":3,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_c4781b769b8efd62_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_93bd7435df2943e9_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -806,7 +806,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_0a957980ceba04eb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_667c4fb6cb922aa6_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -870,7 +870,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_0a957980ceba04eb_EOF + GH_AW_MCP_CONFIG_667c4fb6cb922aa6_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/audit-workflows.md b/.github/workflows/audit-workflows.md index 904e3427bd6..91d1ae9244a 100644 --- a/.github/workflows/audit-workflows.md +++ b/.github/workflows/audit-workflows.md @@ -30,6 +30,8 @@ imports: description: "Historical audit data and patterns" - shared/jqschema.md + + - shared/observability-otlp.md --- # Agentic Workflow Audit Agent diff --git a/.github/workflows/auto-triage-issues.lock.yml b/.github/workflows/auto-triage-issues.lock.yml index 9e208e4ece5..9f125e0d4ae 100644 --- a/.github/workflows/auto-triage-issues.lock.yml +++ b/.github/workflows/auto-triage-issues.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f8210535675656d006796286fe626de23d0098eb4b96e37b8a942d8e359d29fd","strict":true,"agent_id":"copilot","agent_model":"gpt-5-mini"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"25ba385233ac59f16b778a09c4c4c4b85d046210322ff53ddd44d988cb26caa5","strict":true,"agent_id":"copilot","agent_model":"gpt-5-mini"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,11 +27,14 @@ # Resolved workflow manifest: # Imports: # - shared/github-guard-policy.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -74,6 +77,13 @@ concurrency: run-name: "Auto-Triage Issues" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -112,6 +122,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -198,20 +210,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_20ae707096f752bc_EOF' + cat << 'GH_AW_PROMPT_22c0a58162bb6a9d_EOF' - GH_AW_PROMPT_20ae707096f752bc_EOF + GH_AW_PROMPT_22c0a58162bb6a9d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_20ae707096f752bc_EOF' + cat << 'GH_AW_PROMPT_22c0a58162bb6a9d_EOF' Tools: create_discussion, add_labels(max:10), missing_tool, missing_data, noop - GH_AW_PROMPT_20ae707096f752bc_EOF + GH_AW_PROMPT_22c0a58162bb6a9d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_20ae707096f752bc_EOF' + cat << 'GH_AW_PROMPT_22c0a58162bb6a9d_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -240,15 +252,16 @@ jobs: {{/if}} - GH_AW_PROMPT_20ae707096f752bc_EOF + GH_AW_PROMPT_22c0a58162bb6a9d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_20ae707096f752bc_EOF' + cat << 'GH_AW_PROMPT_22c0a58162bb6a9d_EOF' {{#runtime-import .github/workflows/shared/github-guard-policy.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/auto-triage-issues.md}} - GH_AW_PROMPT_20ae707096f752bc_EOF + GH_AW_PROMPT_22c0a58162bb6a9d_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -378,6 +391,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -478,9 +493,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_06676d1b5c5d04d5_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ad7601bdf062f098_EOF' {"add_labels":{"max":10},"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[Auto-Triage] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_06676d1b5c5d04d5_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_ad7601bdf062f098_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -688,11 +703,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_e8142dfcfbf42a81_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_565c3d3852153a7c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -714,10 +729,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_e8142dfcfbf42a81_EOF + GH_AW_MCP_CONFIG_565c3d3852153a7c_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -936,6 +957,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -960,6 +990,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1425,6 +1457,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Auto-Triage Issues" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/auto-triage-issues.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/auto-triage-issues.md b/.github/workflows/auto-triage-issues.md index 428882c8df6..ed0c3669e09 100644 --- a/.github/workflows/auto-triage-issues.md +++ b/.github/workflows/auto-triage-issues.md @@ -23,6 +23,7 @@ network: imports: - shared/github-guard-policy.md - shared/reporting.md + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -55,6 +56,7 @@ safe-outputs: timeout-minutes: 15 features: copilot-requests: true + --- # Auto-Triage Issues Agent 🏷️ diff --git a/.github/workflows/aw-failure-investigator.lock.yml b/.github/workflows/aw-failure-investigator.lock.yml index f986725637c..9739e265fa3 100644 --- a/.github/workflows/aw-failure-investigator.lock.yml +++ b/.github/workflows/aw-failure-investigator.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"da6963c9df994349c6fe23fc8357f4539482525f87af19df1f0b507a00b829cf","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e38d4e482ceaac094f19efc50ec46b8e69267fb8c462efe606089b98047c15e2","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,12 +27,15 @@ # Resolved workflow manifest: # Imports: # - shared/meta-analysis-base.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -75,6 +78,13 @@ concurrency: run-name: "[aw] Failure Investigator (6h)" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -108,6 +118,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -188,21 +200,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_aef12e65fd71f153_EOF' + cat << 'GH_AW_PROMPT_a67a62b0d34b299a_EOF' - GH_AW_PROMPT_aef12e65fd71f153_EOF + GH_AW_PROMPT_a67a62b0d34b299a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_aef12e65fd71f153_EOF' + cat << 'GH_AW_PROMPT_a67a62b0d34b299a_EOF' Tools: create_issue(max:2), update_issue(max:10), link_sub_issue(max:10), missing_tool, missing_data, noop - GH_AW_PROMPT_aef12e65fd71f153_EOF + GH_AW_PROMPT_a67a62b0d34b299a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_aef12e65fd71f153_EOF' + cat << 'GH_AW_PROMPT_a67a62b0d34b299a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -231,16 +243,17 @@ jobs: {{/if}} - GH_AW_PROMPT_aef12e65fd71f153_EOF + GH_AW_PROMPT_a67a62b0d34b299a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_aef12e65fd71f153_EOF' + cat << 'GH_AW_PROMPT_a67a62b0d34b299a_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/aw-failure-investigator.md}} - GH_AW_PROMPT_aef12e65fd71f153_EOF + GH_AW_PROMPT_a67a62b0d34b299a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -368,6 +381,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -505,9 +520,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_24f5c68fa70d3840_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_bc4cef431299194f_EOF' {"create_issue":{"expires":168,"group":true,"labels":["agentic-workflows","automation","cookie"],"max":2,"title_prefix":"[aw-failures] "},"create_report_incomplete_issue":{},"link_sub_issue":{"max":10},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"update_issue":{"allow_body":true,"max":10,"target":"*"}} - GH_AW_SAFE_OUTPUTS_CONFIG_24f5c68fa70d3840_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_bc4cef431299194f_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -780,10 +795,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_cf8af7037498c5c2_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_aac4db475087eccf_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -823,10 +838,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_cf8af7037498c5c2_EOF + GH_AW_MCP_CONFIG_aac4db475087eccf_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1083,6 +1104,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1103,6 +1133,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1515,6 +1547,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "[aw] Failure Investigator (6h)" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/aw-failure-investigator.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/aw-failure-investigator.md b/.github/workflows/aw-failure-investigator.md index d0bb3216887..3e58c76bfbb 100644 --- a/.github/workflows/aw-failure-investigator.md +++ b/.github/workflows/aw-failure-investigator.md @@ -32,6 +32,8 @@ imports: with: toolsets: [default, actions] - shared/reporting.md + + - shared/observability-otlp.md --- # [aw] Failure Investigator (6h) diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index f7319186c93..9d8842be8fc 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8e3f96fa71c2ab501231af7aaae2ea7dc443f4d5c1ed72f83a65cac97281689a","agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"604292c4141ac71cbb6b2a49cefaa59448792708d67257da9d502b63474677f3","agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -198,21 +198,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_328a0d45303861b1_EOF' + cat << 'GH_AW_PROMPT_3906afbb1ede8f7a_EOF' - GH_AW_PROMPT_328a0d45303861b1_EOF + GH_AW_PROMPT_3906afbb1ede8f7a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/playwright_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_328a0d45303861b1_EOF' + cat << 'GH_AW_PROMPT_3906afbb1ede8f7a_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_328a0d45303861b1_EOF + GH_AW_PROMPT_3906afbb1ede8f7a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_328a0d45303861b1_EOF' + cat << 'GH_AW_PROMPT_3906afbb1ede8f7a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -241,15 +241,15 @@ jobs: {{/if}} - GH_AW_PROMPT_328a0d45303861b1_EOF + GH_AW_PROMPT_3906afbb1ede8f7a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_328a0d45303861b1_EOF' + cat << 'GH_AW_PROMPT_3906afbb1ede8f7a_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/blog-auditor.md}} - GH_AW_PROMPT_328a0d45303861b1_EOF + GH_AW_PROMPT_3906afbb1ede8f7a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -465,9 +465,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ad7c7f9e0793a2a0_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f31db89c6157953a_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[audit] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_ad7c7f9e0793a2a0_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_f31db89c6157953a_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -661,7 +661,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_819d274fc17de67a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_a61e9c665780c656_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -707,7 +707,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_819d274fc17de67a_EOF + GH_AW_MCP_CONFIG_a61e9c665780c656_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/blog-auditor.md b/.github/workflows/blog-auditor.md index d797a60f62d..a09a91a4928 100644 --- a/.github/workflows/blog-auditor.md +++ b/.github/workflows/blog-auditor.md @@ -34,6 +34,8 @@ imports: with: title-prefix: "[audit] " expires: 1d + + - shared/observability-otlp.md --- # Blog Auditor diff --git a/.github/workflows/bot-detection.lock.yml b/.github/workflows/bot-detection.lock.yml index d1423ce89c6..3787aa2014a 100644 --- a/.github/workflows/bot-detection.lock.yml +++ b/.github/workflows/bot-detection.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"225edc358fd2519d11b661ca5b81ec89eb125276424620c6c567cea58acd3768","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"617115339be0a344892b9e6396f496e7bbac69487390a378c24ac91beb5ad2d2","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,10 +24,16 @@ # # Investigates suspicious repository activity and maintains a single triage issue # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -65,6 +71,13 @@ concurrency: run-name: "Bot Detection" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: precompute @@ -100,6 +113,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Bot Detection" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/bot-detection.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -184,20 +199,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_5c36ab16716f9d71_EOF' + cat << 'GH_AW_PROMPT_66acf76312e2084d_EOF' - GH_AW_PROMPT_5c36ab16716f9d71_EOF + GH_AW_PROMPT_66acf76312e2084d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_5c36ab16716f9d71_EOF' + cat << 'GH_AW_PROMPT_66acf76312e2084d_EOF' Tools: create_issue, update_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_5c36ab16716f9d71_EOF + GH_AW_PROMPT_66acf76312e2084d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_5c36ab16716f9d71_EOF' + cat << 'GH_AW_PROMPT_66acf76312e2084d_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -226,13 +241,14 @@ jobs: {{/if}} - GH_AW_PROMPT_5c36ab16716f9d71_EOF + GH_AW_PROMPT_66acf76312e2084d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_5c36ab16716f9d71_EOF' + cat << 'GH_AW_PROMPT_66acf76312e2084d_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/bot-detection.md}} - GH_AW_PROMPT_5c36ab16716f9d71_EOF + GH_AW_PROMPT_66acf76312e2084d_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -379,6 +395,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -455,9 +473,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_cc2c7df189f7246f_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0d47f8c0cf5ae98d_EOF' {"create_issue":{"labels":["security","bot-detection"],"max":1},"create_report_incomplete_issue":{},"mentions":{"allowed":["pelikhan"]},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"update_issue":{"allow_body":true,"max":1,"target":"*"}} - GH_AW_SAFE_OUTPUTS_CONFIG_cc2c7df189f7246f_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_0d47f8c0cf5ae98d_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -713,11 +731,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_6c001074ce097d5d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_f647ed82a4d86e64_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -755,10 +773,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_6c001074ce097d5d_EOF + GH_AW_MCP_CONFIG_f647ed82a4d86e64_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -946,6 +970,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -968,6 +1001,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/awf-config.json @@ -1962,6 +1997,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Bot Detection" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/bot-detection.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/bot-detection.md b/.github/workflows/bot-detection.md index b5f7f04bc8c..ebb4c2675af 100644 --- a/.github/workflows/bot-detection.md +++ b/.github/workflows/bot-detection.md @@ -9,6 +9,8 @@ permissions: pull-requests: read issues: read actions: read +imports: + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -827,6 +829,7 @@ safe-outputs: timeout-minutes: 10 strict: true + --- # Bot Detection diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index b885266092a..520ab4d827a 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3053e93af25517971471cb8fe9f40cc9bada97ced5f00066277f072d8b2e4b89","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["BRAVE_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"dbbaf8b75dd3bdafbe8dcac6fe1280216904eb8207df077ebb08651e23b0dd22","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["BRAVE_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"docker.io/mcp/brave-search","digest":"sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22","pinned_image":"docker.io/mcp/brave-search@sha256:ca96b8acb27d8cf601a8faef86a084602cffa41d8cb18caa1e29ba4d16989d22"},{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,11 +27,14 @@ # Resolved workflow manifest: # Imports: # - shared/mcp/brave.md +# - shared/observability-otlp.md # # Secrets used: # - BRAVE_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -65,6 +68,13 @@ concurrency: run-name: "Brave Web Search Agent" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -107,6 +117,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -222,20 +234,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_49863381d8f5674f_EOF' + cat << 'GH_AW_PROMPT_b28fd8abe8fe56b6_EOF' - GH_AW_PROMPT_49863381d8f5674f_EOF + GH_AW_PROMPT_b28fd8abe8fe56b6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_49863381d8f5674f_EOF' + cat << 'GH_AW_PROMPT_b28fd8abe8fe56b6_EOF' Tools: add_comment, missing_tool, missing_data, noop - GH_AW_PROMPT_49863381d8f5674f_EOF + GH_AW_PROMPT_b28fd8abe8fe56b6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_49863381d8f5674f_EOF' + cat << 'GH_AW_PROMPT_b28fd8abe8fe56b6_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -264,17 +276,18 @@ jobs: {{/if}} - GH_AW_PROMPT_49863381d8f5674f_EOF + GH_AW_PROMPT_b28fd8abe8fe56b6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" if [ "$GITHUB_EVENT_NAME" = "issue_comment" ] && [ -n "$GH_AW_IS_PR_COMMENT" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review_comment" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review" ]; then cat "${RUNNER_TEMP}/gh-aw/prompts/pr_context_prompt.md" fi - cat << 'GH_AW_PROMPT_49863381d8f5674f_EOF' + cat << 'GH_AW_PROMPT_b28fd8abe8fe56b6_EOF' {{#runtime-import .github/workflows/shared/mcp/brave.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/brave.md}} - GH_AW_PROMPT_49863381d8f5674f_EOF + GH_AW_PROMPT_b28fd8abe8fe56b6_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -417,6 +430,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -493,9 +508,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_688f43f0700eea8f_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_4a87881f5ed92b05_EOF' {"add_comment":{"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_688f43f0700eea8f_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_4a87881f5ed92b05_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -683,11 +698,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e BRAVE_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e BRAVE_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_c21b56883134030d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_62428ca1f0fed3d0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "brave-search": { @@ -742,10 +757,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_c21b56883134030d_EOF + GH_AW_MCP_CONFIG_62428ca1f0fed3d0_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -935,6 +956,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -957,6 +987,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1441,6 +1473,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Brave Web Search Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/brave.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/brave.md b/.github/workflows/brave.md index 1507e85e28a..695fe8f3b27 100644 --- a/.github/workflows/brave.md +++ b/.github/workflows/brave.md @@ -12,6 +12,7 @@ engine: copilot strict: true imports: - shared/mcp/brave.md + - shared/observability-otlp.md safe-outputs: add-comment: max: 1 @@ -27,6 +28,7 @@ features: tools: cli-proxy: true + --- # Brave Web Search Agent diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index 65086bffba4..ee4b9fed6ac 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4faeb3ac7bf52adab6574c04479856ed36a098fd1ab00e87edf9b414c37f1611","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e372bdfcb4d49084f09ac44dda20971fd0614de36d426b2f09dc685ab0c3c8fc","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - shared/activation-app.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/daily-issue-base.md # - shared/skip-if-issue-open.md @@ -35,6 +36,8 @@ # - GH_AW_AGENT_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -74,6 +77,13 @@ concurrency: run-name: "Breaking Change Checker" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -109,6 +119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -184,20 +196,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_afdcd2faaef33dcc_EOF' + cat << 'GH_AW_PROMPT_597e5b3e0f958ea6_EOF' - GH_AW_PROMPT_afdcd2faaef33dcc_EOF + GH_AW_PROMPT_597e5b3e0f958ea6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_afdcd2faaef33dcc_EOF' + cat << 'GH_AW_PROMPT_597e5b3e0f958ea6_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_afdcd2faaef33dcc_EOF + GH_AW_PROMPT_597e5b3e0f958ea6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_afdcd2faaef33dcc_EOF' + cat << 'GH_AW_PROMPT_597e5b3e0f958ea6_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -226,14 +238,15 @@ jobs: {{/if}} - GH_AW_PROMPT_afdcd2faaef33dcc_EOF + GH_AW_PROMPT_597e5b3e0f958ea6_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_afdcd2faaef33dcc_EOF' + cat << 'GH_AW_PROMPT_597e5b3e0f958ea6_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/breaking-change-checker.md}} - GH_AW_PROMPT_afdcd2faaef33dcc_EOF + GH_AW_PROMPT_597e5b3e0f958ea6_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -368,6 +381,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -444,9 +459,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0eda7dc5ef2d5a4e_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_679df79cfe0ae982_EOF' {"create_issue":{"assignees":["copilot"],"expires":48,"labels":["breaking-change","automated-analysis","cookie"],"max":1,"title_prefix":"[breaking-change] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_0eda7dc5ef2d5a4e_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_679df79cfe0ae982_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -644,11 +659,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_5fce03269361ab8c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_188da41c5f5e6828_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -670,10 +685,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_5fce03269361ab8c_EOF + GH_AW_MCP_CONFIG_188da41c5f5e6828_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -895,6 +916,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -917,6 +947,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1387,6 +1419,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Breaking Change Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/breaking-change-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/breaking-change-checker.md b/.github/workflows/breaking-change-checker.md index 48d9e1e6adc..635f34d3d4d 100644 --- a/.github/workflows/breaking-change-checker.md +++ b/.github/workflows/breaking-change-checker.md @@ -30,6 +30,7 @@ imports: expires: "2d" labels: [breaking-change, automated-analysis, cookie] assignees: [copilot] + - shared/observability-otlp.md safe-outputs: messages: footer: "> ⚠️ *Compatibility report by [{workflow_name}]({run_url})*{effective_tokens_suffix}{history_link}" @@ -40,6 +41,7 @@ safe-outputs: timeout-minutes: 10 features: copilot-requests: true + --- # Breaking Change Checker diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 94c8ee1f60f..9036b8a1513 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"928f3f9c2ed5c5afcad0c561553859b1abed6e90d0bb9417de4bffb07c30efbb","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"689e8aa2805c2b22c91fa4fbe85cb1714e61721aeabde97aebd5254b25249284","strict":true,"agent_id":"codex","agent_model":"gpt-5.4-mini"} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -28,12 +28,15 @@ # Imports: # - shared/changeset-format.md # - shared/jqschema.md +# - shared/observability-otlp.md # # Secrets used: # - CODEX_API_KEY # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # - OPENAI_API_KEY # @@ -77,6 +80,13 @@ concurrency: run-name: "Changeset Generator" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -122,6 +132,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.129.0" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -229,23 +241,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_f9230b228c3ade5f_EOF' + cat << 'GH_AW_PROMPT_802a243cd285ffa0_EOF' - GH_AW_PROMPT_f9230b228c3ade5f_EOF + GH_AW_PROMPT_802a243cd285ffa0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_f9230b228c3ade5f_EOF' + cat << 'GH_AW_PROMPT_802a243cd285ffa0_EOF' Tools: update_pull_request, push_to_pull_request_branch, missing_tool, missing_data, noop - GH_AW_PROMPT_f9230b228c3ade5f_EOF + GH_AW_PROMPT_802a243cd285ffa0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_push_to_pr_branch.md" - cat << 'GH_AW_PROMPT_f9230b228c3ade5f_EOF' + cat << 'GH_AW_PROMPT_802a243cd285ffa0_EOF' - GH_AW_PROMPT_f9230b228c3ade5f_EOF + GH_AW_PROMPT_802a243cd285ffa0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_f9230b228c3ade5f_EOF' + cat << 'GH_AW_PROMPT_802a243cd285ffa0_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -274,14 +286,15 @@ jobs: {{/if}} - GH_AW_PROMPT_f9230b228c3ade5f_EOF + GH_AW_PROMPT_802a243cd285ffa0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_f9230b228c3ade5f_EOF' + cat << 'GH_AW_PROMPT_802a243cd285ffa0_EOF' {{#runtime-import .github/workflows/shared/changeset-format.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/changeset.md}} - GH_AW_PROMPT_f9230b228c3ade5f_EOF + GH_AW_PROMPT_802a243cd285ffa0_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -415,6 +428,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -497,9 +512,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f023b94f6c620361_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0d57de660a26d1e9_EOF' {"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_to_pull_request_branch":{"allowed_files":[".changeset/**"],"commit_title_suffix":" [skip-ci]","if_no_changes":"warn","max_patch_size":1024,"patch_format":"bundle","protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"]},"report_incomplete":{},"update_pull_request":{"allow_body":true,"allow_title":false,"default_operation":"append","max":1,"update_branch":false}} - GH_AW_SAFE_OUTPUTS_CONFIG_f023b94f6c620361_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_0d57de660a26d1e9_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -722,9 +737,9 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_ffdecdf00e7534f9_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_8cd17614441f5d2a_EOF [history] persistence = "none" @@ -751,11 +766,11 @@ jobs: [mcp_servers.safeoutputs."guard-policies".write-sink] accept = ["*"] - GH_AW_MCP_CONFIG_ffdecdf00e7534f9_EOF + GH_AW_MCP_CONFIG_8cd17614441f5d2a_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ffdecdf00e7534f9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_8cd17614441f5d2a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -792,14 +807,20 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_ffdecdf00e7534f9_EOF + GH_AW_MCP_CONFIG_8cd17614441f5d2a_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_66addabb3a899dbd_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_deab52a582969330_EOF model_provider = "openai-proxy" @@ -811,7 +832,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "GH_AW_ASSETS_ALLOWED_EXTS", "GH_AW_ASSETS_BRANCH", "GH_AW_ASSETS_MAX_SIZE_KB", "GH_AW_SAFE_OUTPUTS", "GITHUB_PERSONAL_ACCESS_TOKEN", "GITHUB_REPOSITORY", "GITHUB_SERVER_URL", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_66addabb3a899dbd_EOF + GH_AW_CODEX_SHELL_POLICY_deab52a582969330_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -990,6 +1011,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1012,6 +1042,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1240,6 +1272,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Changeset Generator" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/changeset.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.129.0" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/changeset.md b/.github/workflows/changeset.md index 2fe16709e98..089dd146ea4 100644 --- a/.github/workflows/changeset.md +++ b/.github/workflows/changeset.md @@ -43,6 +43,8 @@ imports: - shared/changeset-format.md - shared/jqschema.md + + - shared/observability-otlp.md --- # Changeset Generator diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 23714179d28..790a02eb548 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"51f89c8cb12198772f75fb83faddd0d0c089deea6a8fcd1164a3fe316ec1f3e4","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e46e44cf30811727563fa1bd976472feae720b8adb9d77ced32c1c5641aceb63","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -29,12 +29,15 @@ # - shared/ci-optimization-strategies.md # - shared/jqschema.md # - shared/ci-data-analysis.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -77,6 +80,13 @@ concurrency: run-name: "CI Optimization Coach" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -109,6 +119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -185,24 +197,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_7a2e23ba30062ebd_EOF' + cat << 'GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF' - GH_AW_PROMPT_7a2e23ba30062ebd_EOF + GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_7a2e23ba30062ebd_EOF' + cat << 'GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF' Tools: create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_7a2e23ba30062ebd_EOF + GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_7a2e23ba30062ebd_EOF' + cat << 'GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF' - GH_AW_PROMPT_7a2e23ba30062ebd_EOF + GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_7a2e23ba30062ebd_EOF' + cat << 'GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -231,17 +243,18 @@ jobs: {{/if}} - GH_AW_PROMPT_7a2e23ba30062ebd_EOF + GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_7a2e23ba30062ebd_EOF' + cat << 'GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF' {{#runtime-import .github/workflows/shared/ci-data-analysis.md}} {{#runtime-import .github/workflows/shared/ci-optimization-strategies.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/ci-coach.md}} - GH_AW_PROMPT_7a2e23ba30062ebd_EOF + GH_AW_PROMPT_abcb9fcb3b31b0ab_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -383,6 +396,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -515,9 +530,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_767c4605030bb938_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3787085c13dce67f_EOF' {"create_pull_request":{"expires":48,"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"protected_files_policy":"fallback-to-issue","title_prefix":"[ci-coach] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_767c4605030bb938_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_3787085c13dce67f_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -720,11 +735,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b05ab9f441292660_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_4ac2c66f16a8db5a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -746,10 +761,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_b05ab9f441292660_EOF + GH_AW_MCP_CONFIG_4ac2c66f16a8db5a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -950,6 +971,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -983,6 +1013,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1401,6 +1433,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CI Optimization Coach" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-coach.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/ci-coach.md b/.github/workflows/ci-coach.md index 8758174f30c..f15f5cfc7a4 100644 --- a/.github/workflows/ci-coach.md +++ b/.github/workflows/ci-coach.md @@ -27,8 +27,10 @@ imports: - shared/ci-data-analysis.md - shared/ci-optimization-strategies.md - shared/reporting.md + - shared/observability-otlp.md features: copilot-requests: true + --- # CI Optimization Coach diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 5da79760c8e..2064ba78027 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d9290755b0a10a3b63fe12bf7cafa645921ae91468c4718849c8740081483861","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"062e5aa6bd294432a0b961b9b412ca1c84eee364f058776812901511c884d824","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,10 +26,16 @@ # # Source: githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -76,6 +82,13 @@ concurrency: run-name: "CI Failure Doctor" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -117,6 +130,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -242,21 +257,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_5a4b6aaf81166672_EOF' + cat << 'GH_AW_PROMPT_b3c473c2a475b25a_EOF' - GH_AW_PROMPT_5a4b6aaf81166672_EOF + GH_AW_PROMPT_b3c473c2a475b25a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_5a4b6aaf81166672_EOF' + cat << 'GH_AW_PROMPT_b3c473c2a475b25a_EOF' Tools: add_comment, create_issue, update_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_5a4b6aaf81166672_EOF + GH_AW_PROMPT_b3c473c2a475b25a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_5a4b6aaf81166672_EOF' + cat << 'GH_AW_PROMPT_b3c473c2a475b25a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -285,12 +300,13 @@ jobs: {{/if}} - GH_AW_PROMPT_5a4b6aaf81166672_EOF + GH_AW_PROMPT_b3c473c2a475b25a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_5a4b6aaf81166672_EOF' + cat << 'GH_AW_PROMPT_b3c473c2a475b25a_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/ci-doctor.md}} - GH_AW_PROMPT_5a4b6aaf81166672_EOF + GH_AW_PROMPT_b3c473c2a475b25a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -451,6 +467,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -561,9 +579,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c0ec2ba32188c110_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_73fdfd3cf13c4176_EOF' {"add_comment":{"hide_older_comments":true,"max":1},"create_issue":{"close_older_issues":true,"expires":24,"labels":["cookie"],"max":1,"title_prefix":"[CI Failure Doctor] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"update_issue":{"allow_body":true,"max":1}} - GH_AW_SAFE_OUTPUTS_CONFIG_c0ec2ba32188c110_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_73fdfd3cf13c4176_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -839,10 +857,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_5baff2a96e58f14c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_af506c44b73bc733_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -864,10 +882,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_5baff2a96e58f14c_EOF + GH_AW_MCP_CONFIG_af506c44b73bc733_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1129,6 +1153,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1160,6 +1193,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1649,6 +1684,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CI Failure Doctor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/ci-doctor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/ci-doctor.md b/.github/workflows/ci-doctor.md index 2a9d77772d8..95a1e0badef 100644 --- a/.github/workflows/ci-doctor.md +++ b/.github/workflows/ci-doctor.md @@ -33,6 +33,8 @@ safe-outputs: run-success: "🩺 Examination complete! [{workflow_name}]({run_url}) has delivered the diagnosis. Prescription issued! 💊" run-failure: "🏥 Medical emergency! [{workflow_name}]({run_url}) {status}. Doctor needs assistance..." +imports: + - shared/observability-otlp.md tools: cli-proxy: true cache-memory: true @@ -199,6 +201,7 @@ steps: echo "✅ PR pre-analysis complete. Agent should start with $SUMMARY_FILE" source: githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d + --- # CI Failure Doctor diff --git a/.github/workflows/claude-code-user-docs-review.lock.yml b/.github/workflows/claude-code-user-docs-review.lock.yml index 2cf10633963..2cb43c30d13 100644 --- a/.github/workflows/claude-code-user-docs-review.lock.yml +++ b/.github/workflows/claude-code-user-docs-review.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c27f06e7e30a5acf0c83de52fddf3d52c8509ce2806b81c9915a5e6cb4d9f49f","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"058f6b331dc5f8973cfdcd4363dfc4a823593c40299f21154088ea06b783b584","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -200,21 +200,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_11df28c4cdbb3fec_EOF' + cat << 'GH_AW_PROMPT_3ba11e030bb6cfd1_EOF' - GH_AW_PROMPT_11df28c4cdbb3fec_EOF + GH_AW_PROMPT_3ba11e030bb6cfd1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_11df28c4cdbb3fec_EOF' + cat << 'GH_AW_PROMPT_3ba11e030bb6cfd1_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_11df28c4cdbb3fec_EOF + GH_AW_PROMPT_3ba11e030bb6cfd1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_11df28c4cdbb3fec_EOF' + cat << 'GH_AW_PROMPT_3ba11e030bb6cfd1_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -243,15 +243,15 @@ jobs: {{/if}} - GH_AW_PROMPT_11df28c4cdbb3fec_EOF + GH_AW_PROMPT_3ba11e030bb6cfd1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_11df28c4cdbb3fec_EOF' + cat << 'GH_AW_PROMPT_3ba11e030bb6cfd1_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/claude-code-user-docs-review.md}} - GH_AW_PROMPT_11df28c4cdbb3fec_EOF + GH_AW_PROMPT_3ba11e030bb6cfd1_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -484,9 +484,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3172c325bfa098d7_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_1fee430a801a1666_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[claude-code-user-docs-review] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_3172c325bfa098d7_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_1fee430a801a1666_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -677,7 +677,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_2edab78e3ab2809f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_cf473eabefe44566_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -708,7 +708,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_2edab78e3ab2809f_EOF + GH_AW_MCP_CONFIG_cf473eabefe44566_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/claude-code-user-docs-review.md b/.github/workflows/claude-code-user-docs-review.md index 400ecf43c46..cb7b9a5dee3 100644 --- a/.github/workflows/claude-code-user-docs-review.md +++ b/.github/workflows/claude-code-user-docs-review.md @@ -39,8 +39,10 @@ imports: title-prefix: "[claude-code-user-docs-review] " expires: 1d + - shared/observability-otlp.md features: copilot-requests: true + --- # Claude Code User Documentation Review diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index f8cc3f24236..e511c222d27 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f59e01aa6ba935337217727225b906d1c0ca357b290779da03d0cd7eb6662571","agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9110995fda2626fd7474400649e77a4ce0a36870129599d8c31ec5dc5f272014","agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,9 +24,15 @@ # # Inspects the gh-aw CLI to identify inconsistencies, typos, bugs, or documentation gaps by running commands and analyzing output # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -65,6 +71,13 @@ concurrency: run-name: "CLI Consistency Checker" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -97,6 +110,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -172,20 +187,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_c0f2a49a3806cd0a_EOF' + cat << 'GH_AW_PROMPT_3d05e8bc4b1d638f_EOF' - GH_AW_PROMPT_c0f2a49a3806cd0a_EOF + GH_AW_PROMPT_3d05e8bc4b1d638f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_c0f2a49a3806cd0a_EOF' + cat << 'GH_AW_PROMPT_3d05e8bc4b1d638f_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_c0f2a49a3806cd0a_EOF + GH_AW_PROMPT_3d05e8bc4b1d638f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_c0f2a49a3806cd0a_EOF' + cat << 'GH_AW_PROMPT_3d05e8bc4b1d638f_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -214,13 +229,14 @@ jobs: {{/if}} - GH_AW_PROMPT_c0f2a49a3806cd0a_EOF + GH_AW_PROMPT_3d05e8bc4b1d638f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_c0f2a49a3806cd0a_EOF' + cat << 'GH_AW_PROMPT_3d05e8bc4b1d638f_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/cli-consistency-checker.md}} - GH_AW_PROMPT_c0f2a49a3806cd0a_EOF + GH_AW_PROMPT_3d05e8bc4b1d638f_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -354,6 +370,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -430,9 +448,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_2ecdb233f1308ec5_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_726d7008e1cb8c46_EOF' {"create_issue":{"expires":48,"labels":["automation","cli","documentation","cookie"],"max":1,"title_prefix":"[cli-consistency] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_2ecdb233f1308ec5_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_726d7008e1cb8c46_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -633,11 +651,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_0eee7829f1f908f7_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_0f5e3ea04c25edde_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -675,10 +693,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_0eee7829f1f908f7_EOF + GH_AW_MCP_CONFIG_0f5e3ea04c25edde_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -866,6 +890,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -888,6 +921,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1294,6 +1329,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CLI Consistency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-consistency-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/cli-consistency-checker.md b/.github/workflows/cli-consistency-checker.md index 05ccfcbfd94..6fcf4dccef5 100644 --- a/.github/workflows/cli-consistency-checker.md +++ b/.github/workflows/cli-consistency-checker.md @@ -13,6 +13,8 @@ engine: copilot strict: false network: allowed: [defaults, node, "api.github.com", "proxy.golang.org", "sum.golang.org"] +imports: + - shared/observability-otlp.md tools: cli-proxy: true edit: @@ -28,6 +30,7 @@ safe-outputs: timeout-minutes: 20 features: copilot-requests: true + --- # CLI Consistency Checker diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 3be0a34701b..0b01674d30c 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c94fec3fbce538593713e1d78bf05cef0fdc7392f2b3ffb1fe84adec8ff69244","agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a29bde63ed47ee4d7f1b709c471f6260be5a83080a235290d91810d7ca04020e","agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,12 +27,15 @@ # Resolved workflow manifest: # Imports: # - shared/jqschema.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -73,6 +76,13 @@ concurrency: run-name: "CLI Version Checker" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -106,6 +116,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -186,21 +198,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_1cb164cb4aa17a5d_EOF' + cat << 'GH_AW_PROMPT_29e579ace2c240a9_EOF' - GH_AW_PROMPT_1cb164cb4aa17a5d_EOF + GH_AW_PROMPT_29e579ace2c240a9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_1cb164cb4aa17a5d_EOF' + cat << 'GH_AW_PROMPT_29e579ace2c240a9_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_1cb164cb4aa17a5d_EOF + GH_AW_PROMPT_29e579ace2c240a9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_1cb164cb4aa17a5d_EOF' + cat << 'GH_AW_PROMPT_29e579ace2c240a9_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -229,15 +241,16 @@ jobs: {{/if}} - GH_AW_PROMPT_1cb164cb4aa17a5d_EOF + GH_AW_PROMPT_29e579ace2c240a9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_1cb164cb4aa17a5d_EOF' + cat << 'GH_AW_PROMPT_29e579ace2c240a9_EOF' {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/cli-version-checker.md}} - GH_AW_PROMPT_1cb164cb4aa17a5d_EOF + GH_AW_PROMPT_29e579ace2c240a9_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -371,6 +384,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -468,9 +483,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_b5f8eeaa8bebb0a3_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c9d9704321dce32b_EOF' {"create_issue":{"close_older_issues":true,"expires":48,"labels":["automation","dependencies","cookie"],"max":1,"title_prefix":"[ca] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_b5f8eeaa8bebb0a3_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_c9d9704321dce32b_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -671,10 +686,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_3523346b8902659e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_dd4e0349632dfab4_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -711,10 +726,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_3523346b8902659e_EOF + GH_AW_MCP_CONFIG_dd4e0349632dfab4_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -962,6 +983,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -993,6 +1023,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1401,6 +1433,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "CLI Version Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cli-version-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/cli-version-checker.md b/.github/workflows/cli-version-checker.md index 9cce8604474..045356f08c2 100644 --- a/.github/workflows/cli-version-checker.md +++ b/.github/workflows/cli-version-checker.md @@ -14,6 +14,7 @@ network: imports: - shared/jqschema.md - shared/reporting.md + - shared/observability-otlp.md tools: cli-proxy: true web-fetch: @@ -28,6 +29,7 @@ safe-outputs: labels: [automation, dependencies, cookie] close-older-issues: true timeout-minutes: 45 + --- # CLI Version Checker diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index 52e428596e1..83d759af471 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"81b0e09a68aa6e82ef2982534646abf8861b6b80c91b19f4d6beb50718425a63","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ac1f73602782b781282d3405f9d72acad8c6fb619fa896d2a1d77d9bb0b0ee7c","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -28,6 +28,7 @@ # - shared/jqschema.md # - shared/mcp/serena-go.md # - shared/mcp/serena.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: @@ -35,6 +36,8 @@ # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -99,6 +102,13 @@ concurrency: run-name: "/cloclo" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -144,6 +154,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -278,9 +290,9 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_6890133d8169f52b_EOF' + cat << 'GH_AW_PROMPT_3bb69d774fbb01e5_EOF' - GH_AW_PROMPT_6890133d8169f52b_EOF + GH_AW_PROMPT_3bb69d774fbb01e5_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" @@ -288,16 +300,16 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_6890133d8169f52b_EOF' + cat << 'GH_AW_PROMPT_3bb69d774fbb01e5_EOF' Tools: add_comment, create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_6890133d8169f52b_EOF + GH_AW_PROMPT_3bb69d774fbb01e5_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_6890133d8169f52b_EOF' + cat << 'GH_AW_PROMPT_3bb69d774fbb01e5_EOF' - GH_AW_PROMPT_6890133d8169f52b_EOF + GH_AW_PROMPT_3bb69d774fbb01e5_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_6890133d8169f52b_EOF' + cat << 'GH_AW_PROMPT_3bb69d774fbb01e5_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -326,12 +338,12 @@ jobs: {{/if}} - GH_AW_PROMPT_6890133d8169f52b_EOF + GH_AW_PROMPT_3bb69d774fbb01e5_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" if [ "$GITHUB_EVENT_NAME" = "issue_comment" ] && [ -n "$GH_AW_IS_PR_COMMENT" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review_comment" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review" ]; then cat "${RUNNER_TEMP}/gh-aw/prompts/pr_context_prompt.md" fi - cat << 'GH_AW_PROMPT_6890133d8169f52b_EOF' + cat << 'GH_AW_PROMPT_3bb69d774fbb01e5_EOF' ## Serena Code Analysis @@ -367,9 +379,10 @@ jobs: {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/mcp/serena-go.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/cloclo.md}} - GH_AW_PROMPT_6890133d8169f52b_EOF + GH_AW_PROMPT_3bb69d774fbb01e5_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -528,6 +541,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -687,9 +702,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0d14e64828d64392_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d9888d9d2884516e_EOF' {"add_comment":{"max":1},"create_pull_request":{"excluded_files":[".github/workflows/*.lock.yml"],"expires":48,"labels":["automation","cloclo"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","CLAUDE.md","AGENTS.md"],"protected_files_policy":"fallback-to-issue","title_prefix":"[cloclo] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_0d14e64828d64392_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d9888d9d2884516e_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -919,10 +934,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_258b1defbed17e06_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_320dfdaa683356e2_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -1003,10 +1018,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_258b1defbed17e06_EOF + GH_AW_MCP_CONFIG_320dfdaa683356e2_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1278,6 +1299,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1309,6 +1339,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1799,6 +1831,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "/cloclo" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/cloclo.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/cloclo.md b/.github/workflows/cloclo.md index 4460ece3d0e..92dff5f5558 100644 --- a/.github/workflows/cloclo.md +++ b/.github/workflows/cloclo.md @@ -20,6 +20,7 @@ imports: - shared/jqschema.md - shared/mcp/serena-go.md - shared/reporting.md + - shared/observability-otlp.md tools: cli-proxy: true agentic-workflows: @@ -46,6 +47,7 @@ safe-outputs: run-failure: "🎵 Intermission... [{workflow_name}]({run_url}) {status}. Check the [run logs]({run_url}) for details." timeout-minutes: 20 + --- # /cloclo diff --git a/.github/workflows/code-scanning-fixer.lock.yml b/.github/workflows/code-scanning-fixer.lock.yml index c5cc5ab38f6..6721cdf3a10 100644 --- a/.github/workflows/code-scanning-fixer.lock.yml +++ b/.github/workflows/code-scanning-fixer.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8bf40e478e3d5b64613f634000a17890f7e696fbc8097254607872303a6f5fb4","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"027aef30354302e4cea963705f1b7369dde85a9d1ee4de8413f885ebd0253a37","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - shared/activation-app.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/daily-pr-base.md # - shared/security-analysis-base.md @@ -36,6 +37,8 @@ # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -74,6 +77,13 @@ concurrency: run-name: "Code Scanning Fixer" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -109,6 +119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -184,25 +196,25 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_8a04f96c520d22ce_EOF' + cat << 'GH_AW_PROMPT_ab7cb2e358bd8b75_EOF' - GH_AW_PROMPT_8a04f96c520d22ce_EOF + GH_AW_PROMPT_ab7cb2e358bd8b75_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt_multi.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_8a04f96c520d22ce_EOF' + cat << 'GH_AW_PROMPT_ab7cb2e358bd8b75_EOF' Tools: create_pull_request, add_labels, missing_tool, missing_data, noop - GH_AW_PROMPT_8a04f96c520d22ce_EOF + GH_AW_PROMPT_ab7cb2e358bd8b75_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_8a04f96c520d22ce_EOF' + cat << 'GH_AW_PROMPT_ab7cb2e358bd8b75_EOF' - GH_AW_PROMPT_8a04f96c520d22ce_EOF + GH_AW_PROMPT_ab7cb2e358bd8b75_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_8a04f96c520d22ce_EOF' + cat << 'GH_AW_PROMPT_ab7cb2e358bd8b75_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -231,16 +243,17 @@ jobs: {{/if}} - GH_AW_PROMPT_8a04f96c520d22ce_EOF + GH_AW_PROMPT_ab7cb2e358bd8b75_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_8a04f96c520d22ce_EOF' + cat << 'GH_AW_PROMPT_ab7cb2e358bd8b75_EOF' {{#runtime-import .github/workflows/shared/security-analysis-base.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/code-scanning-fixer.md}} - GH_AW_PROMPT_8a04f96c520d22ce_EOF + GH_AW_PROMPT_ab7cb2e358bd8b75_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -381,6 +394,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -482,9 +497,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_7f79e817a07c9ffb_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_dba2cb5e37a7e021_EOF' {"add_labels":{"allowed":["agentic-campaign","z_campaign_security-alert-burndown"]},"create_pull_request":{"expires":48,"labels":["security","automated-fix","agentic-campaign","z_campaign_security-alert-burndown"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"reviewers":["copilot"],"title_prefix":"[code-scanning-fix] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/campaigns","id":"campaigns","max_file_count":100,"max_file_size":10240,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_7f79e817a07c9ffb_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_dba2cb5e37a7e021_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -707,11 +722,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f47c0101431186b9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_eab27a3361fec66a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -733,10 +748,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_f47c0101431186b9_EOF + GH_AW_MCP_CONFIG_eab27a3361fec66a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -937,6 +958,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -985,6 +1015,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1548,6 +1580,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Code Scanning Fixer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-scanning-fixer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/code-scanning-fixer.md b/.github/workflows/code-scanning-fixer.md index cfa5cd14f95..cbd0f0f3781 100644 --- a/.github/workflows/code-scanning-fixer.md +++ b/.github/workflows/code-scanning-fixer.md @@ -20,6 +20,7 @@ imports: expires: "2d" labels: [security, automated-fix, agentic-campaign, z_campaign_security-alert-burndown] reviewers: [copilot] + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -39,6 +40,7 @@ safe-outputs: - z_campaign_security-alert-burndown timeout-minutes: 20 + --- # Code Scanning Alert Fixer Agent diff --git a/.github/workflows/code-simplifier.lock.yml b/.github/workflows/code-simplifier.lock.yml index 96593e14ce2..dce74a4ba3a 100644 --- a/.github/workflows/code-simplifier.lock.yml +++ b/.github/workflows/code-simplifier.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3b946829a4d8524863fa25f6d387410ee9ded07bcc60d596df6500f87cf34601","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c74c33e67bd99fdd1595c903af72687f711ab4a79782cc91de893dae528ea33c","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - shared/activation-app.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/daily-pr-base.md # - shared/skip-if-issue-open.md @@ -36,6 +37,8 @@ # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -74,6 +77,13 @@ concurrency: run-name: "Code Simplifier" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -110,6 +120,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -190,23 +202,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_337df421f9eff1eb_EOF' + cat << 'GH_AW_PROMPT_f953994136262fa7_EOF' - GH_AW_PROMPT_337df421f9eff1eb_EOF + GH_AW_PROMPT_f953994136262fa7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_337df421f9eff1eb_EOF' + cat << 'GH_AW_PROMPT_f953994136262fa7_EOF' Tools: create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_337df421f9eff1eb_EOF + GH_AW_PROMPT_f953994136262fa7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_337df421f9eff1eb_EOF' + cat << 'GH_AW_PROMPT_f953994136262fa7_EOF' - GH_AW_PROMPT_337df421f9eff1eb_EOF + GH_AW_PROMPT_f953994136262fa7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_337df421f9eff1eb_EOF' + cat << 'GH_AW_PROMPT_f953994136262fa7_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -235,15 +247,16 @@ jobs: {{/if}} - GH_AW_PROMPT_337df421f9eff1eb_EOF + GH_AW_PROMPT_f953994136262fa7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_337df421f9eff1eb_EOF' + cat << 'GH_AW_PROMPT_f953994136262fa7_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/code-simplifier.md}} - GH_AW_PROMPT_337df421f9eff1eb_EOF + GH_AW_PROMPT_f953994136262fa7_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -377,6 +390,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -453,9 +468,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_b1fe5c20068dc8c3_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_568e52014476523e_EOF' {"create_pull_request":{"expires":24,"labels":["refactoring","code-quality","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"reviewers":["copilot"],"title_prefix":"[code-simplifier] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_b1fe5c20068dc8c3_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_568e52014476523e_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -661,11 +676,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_0bdf006435ad3224_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_1109a8657b2e5f8c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -703,10 +718,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_0bdf006435ad3224_EOF + GH_AW_MCP_CONFIG_1109a8657b2e5f8c_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -894,6 +915,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -916,6 +946,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1383,6 +1415,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Code Simplifier" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/code-simplifier.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/code-simplifier.md b/.github/workflows/code-simplifier.md index fd8d369d068..a6f0ae05443 100644 --- a/.github/workflows/code-simplifier.md +++ b/.github/workflows/code-simplifier.md @@ -23,6 +23,7 @@ imports: labels: [refactoring, code-quality, automation] reviewers: [copilot] + - shared/observability-otlp.md network: allowed: - go @@ -34,6 +35,7 @@ tools: timeout-minutes: 30 strict: true + --- diff --git a/.github/workflows/codex-github-remote-mcp-test.lock.yml b/.github/workflows/codex-github-remote-mcp-test.lock.yml index b8b0b8a1c41..183b2d9dd6b 100644 --- a/.github/workflows/codex-github-remote-mcp-test.lock.yml +++ b/.github/workflows/codex-github-remote-mcp-test.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e1fdf4ed94335573d12b3d3eefdd022530bc92c373fe374f759f2ffadf83bc5c","strict":true,"agent_id":"codex"} -# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"99f97fe31459503fafbb30d777080226c56c4c863cf103738ad6320275266446","strict":true,"agent_id":"codex"} +# gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,10 +24,16 @@ # # Test Codex engine with GitHub remote MCP server # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - CODEX_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # - OPENAI_API_KEY # @@ -63,6 +69,13 @@ concurrency: run-name: "Codex GitHub Remote MCP Test" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -96,6 +109,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/codex-github-remote-mcp-test.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.129.0" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -177,23 +192,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_56be9e1ef4b9261a_EOF' + cat << 'GH_AW_PROMPT_28e3c733157f170a_EOF' - GH_AW_PROMPT_56be9e1ef4b9261a_EOF + GH_AW_PROMPT_28e3c733157f170a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_56be9e1ef4b9261a_EOF' + cat << 'GH_AW_PROMPT_28e3c733157f170a_EOF' Tools: create_issue - GH_AW_PROMPT_56be9e1ef4b9261a_EOF + GH_AW_PROMPT_28e3c733157f170a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_auto_create_issue.md" - cat << 'GH_AW_PROMPT_56be9e1ef4b9261a_EOF' + cat << 'GH_AW_PROMPT_28e3c733157f170a_EOF' - GH_AW_PROMPT_56be9e1ef4b9261a_EOF + GH_AW_PROMPT_28e3c733157f170a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_56be9e1ef4b9261a_EOF' + cat << 'GH_AW_PROMPT_28e3c733157f170a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -222,12 +237,13 @@ jobs: {{/if}} - GH_AW_PROMPT_56be9e1ef4b9261a_EOF + GH_AW_PROMPT_28e3c733157f170a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_56be9e1ef4b9261a_EOF' + cat << 'GH_AW_PROMPT_28e3c733157f170a_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/codex-github-remote-mcp-test.md}} - GH_AW_PROMPT_56be9e1ef4b9261a_EOF + GH_AW_PROMPT_28e3c733157f170a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -351,6 +367,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -430,9 +448,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3445766b2bbb4ae1_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0d492bb4bf653f65_EOF' {"create_issue":{"labels":["codex-github-remote-mcp-test"],"max":1,"title_prefix":"[codex-github-remote-mcp-test]"}} - GH_AW_SAFE_OUTPUTS_CONFIG_3445766b2bbb4ae1_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_0d492bb4bf653f65_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -561,9 +579,9 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_c057873794b048d3_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_f6ef956de09f2a34_EOF [history] persistence = "none" @@ -589,11 +607,11 @@ jobs: [mcp_servers.safeoutputs."guard-policies".write-sink] accept = ["*"] - GH_AW_MCP_CONFIG_c057873794b048d3_EOF + GH_AW_MCP_CONFIG_f6ef956de09f2a34_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_c057873794b048d3_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_f6ef956de09f2a34_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -630,14 +648,20 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_c057873794b048d3_EOF + GH_AW_MCP_CONFIG_f6ef956de09f2a34_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_b154a77c738885cd_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_cb6219be198e6348_EOF model_provider = "openai-proxy" @@ -649,7 +673,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "GH_AW_ASSETS_ALLOWED_EXTS", "GH_AW_ASSETS_BRANCH", "GH_AW_ASSETS_MAX_SIZE_KB", "GH_AW_SAFE_OUTPUTS", "GITHUB_PERSONAL_ACCESS_TOKEN", "GITHUB_REPOSITORY", "GITHUB_SERVER_URL", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_b154a77c738885cd_EOF + GH_AW_CODEX_SHELL_POLICY_cb6219be198e6348_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -828,6 +852,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -850,6 +883,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/awf-config.json @@ -981,6 +1016,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Codex GitHub Remote MCP Test" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/codex-github-remote-mcp-test.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.129.0" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/codex-github-remote-mcp-test.md b/.github/workflows/codex-github-remote-mcp-test.md index f0205e7b974..f5817248bb0 100644 --- a/.github/workflows/codex-github-remote-mcp-test.md +++ b/.github/workflows/codex-github-remote-mcp-test.md @@ -6,6 +6,8 @@ permissions: contents: read issues: read engine: codex +imports: + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -14,6 +16,7 @@ tools: timeout-minutes: 5 strict: true + --- # Codex GitHub Remote MCP Test diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index 0e78ca27c1e..230a5e5b5a5 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4cac19ba054642f03e9a3f5b64925be596ca1f681186f9f97679e0de7b23bef3","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f8db1d0c610e98a84209be31c72b1ce41a9de2bbd6e7c69ccbdfe2ea62e817fc","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,12 +26,15 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -72,6 +75,13 @@ concurrency: run-name: "Commit Changes Analyzer" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -105,6 +115,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -186,20 +198,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_b9e2701fbd605cde_EOF' + cat << 'GH_AW_PROMPT_2341325584472454_EOF' - GH_AW_PROMPT_b9e2701fbd605cde_EOF + GH_AW_PROMPT_2341325584472454_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_b9e2701fbd605cde_EOF' + cat << 'GH_AW_PROMPT_2341325584472454_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_b9e2701fbd605cde_EOF + GH_AW_PROMPT_2341325584472454_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_b9e2701fbd605cde_EOF' + cat << 'GH_AW_PROMPT_2341325584472454_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -228,14 +240,15 @@ jobs: {{/if}} - GH_AW_PROMPT_b9e2701fbd605cde_EOF + GH_AW_PROMPT_2341325584472454_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_b9e2701fbd605cde_EOF' + cat << 'GH_AW_PROMPT_2341325584472454_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/commit-changes-analyzer.md}} - GH_AW_PROMPT_b9e2701fbd605cde_EOF + GH_AW_PROMPT_2341325584472454_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -364,6 +377,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -443,9 +458,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_574afd7ce6bb4c18_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ce4e36c0bc67cb1a_EOF' {"create_discussion":{"category":"dev","expires":24,"fallback_to_issue":true,"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_574afd7ce6bb4c18_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_ce4e36c0bc67cb1a_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -633,10 +648,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b11dc0b95af80da8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5a7729e6f22b88af_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -658,10 +673,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_b11dc0b95af80da8_EOF + GH_AW_MCP_CONFIG_5a7729e6f22b88af_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -918,6 +939,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -938,6 +968,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1346,6 +1378,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Commit Changes Analyzer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/commit-changes-analyzer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/commit-changes-analyzer.md b/.github/workflows/commit-changes-analyzer.md index 0075dbe13ab..ec9d5be4de0 100644 --- a/.github/workflows/commit-changes-analyzer.md +++ b/.github/workflows/commit-changes-analyzer.md @@ -32,6 +32,8 @@ timeout-minutes: 30 imports: - shared/reporting.md + + - shared/observability-otlp.md --- # Commit Changes Analyzer diff --git a/.github/workflows/constraint-solving-potd.lock.yml b/.github/workflows/constraint-solving-potd.lock.yml index 742f41729ce..aa09b38406c 100644 --- a/.github/workflows/constraint-solving-potd.lock.yml +++ b/.github/workflows/constraint-solving-potd.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7efc65e883817022b5f95689bac254ca4cd5142e58a0a5a6c3850f20f776174d","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8070d05b57f2c5763945bd29159ebd6a92820705eb08070c3a3b3be0721c3767","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -23,10 +23,16 @@ # For more information: https://github.github.com/gh-aw/introduction/overview/ # # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -67,6 +73,13 @@ concurrency: run-name: "Constraint Solving — Problem of the Day" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -100,6 +113,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -180,21 +195,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_94e7287544da83b8_EOF' + cat << 'GH_AW_PROMPT_68c9667ec53ed7f3_EOF' - GH_AW_PROMPT_94e7287544da83b8_EOF + GH_AW_PROMPT_68c9667ec53ed7f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_94e7287544da83b8_EOF' + cat << 'GH_AW_PROMPT_68c9667ec53ed7f3_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_94e7287544da83b8_EOF + GH_AW_PROMPT_68c9667ec53ed7f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_94e7287544da83b8_EOF' + cat << 'GH_AW_PROMPT_68c9667ec53ed7f3_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -223,12 +238,13 @@ jobs: {{/if}} - GH_AW_PROMPT_94e7287544da83b8_EOF + GH_AW_PROMPT_68c9667ec53ed7f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_94e7287544da83b8_EOF' + cat << 'GH_AW_PROMPT_68c9667ec53ed7f3_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/constraint-solving-potd.md}} - GH_AW_PROMPT_94e7287544da83b8_EOF + GH_AW_PROMPT_68c9667ec53ed7f3_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -362,6 +378,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -433,9 +451,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3b2503cd951a9aa0_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_b3b78423b1d21eae_EOF' {"create_discussion":{"category":"announcements","close_older_discussions":true,"expires":168,"fallback_to_issue":true,"labels":["constraint-solving","problem-of-the-day"],"max":1,"title_prefix":"🧩 Constraint Solving POTD:"},"create_report_incomplete_issue":{},"max_bot_mentions":1,"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_3b2503cd951a9aa0_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_b3b78423b1d21eae_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -626,11 +644,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_65e1dbfc8737a819_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_34ac25513877046d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -668,10 +686,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_65e1dbfc8737a819_EOF + GH_AW_MCP_CONFIG_34ac25513877046d_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -860,6 +884,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -893,6 +926,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1301,6 +1336,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Constraint Solving — Problem of the Day" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/constraint-solving-potd.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/constraint-solving-potd.md b/.github/workflows/constraint-solving-potd.md index ba81e599461..3a5c79e5be2 100644 --- a/.github/workflows/constraint-solving-potd.md +++ b/.github/workflows/constraint-solving-potd.md @@ -10,6 +10,8 @@ engine: id: copilot bare: true +imports: + - shared/observability-otlp.md tools: cli-proxy: true cache-memory: true @@ -24,6 +26,7 @@ safe-outputs: labels: [constraint-solving, problem-of-the-day] close-older-discussions: true expires: 7d + --- # Constraint Solving — Problem of the Day diff --git a/.github/workflows/contribution-check.lock.yml b/.github/workflows/contribution-check.lock.yml index 46b934ce156..c1fe50399fc 100644 --- a/.github/workflows/contribution-check.lock.yml +++ b/.github/workflows/contribution-check.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1acf6713c3edf0e9e2754ba4f9f9b6546e0b69f4cf01a41daa4ef3a3497b0cdf","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"05b91b9bf7e65da06ae5ef4b4629e58aee476bcc42aa7f1977f266c4d53354d9","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -23,6 +23,10 @@ # For more information: https://github.github.com/gh-aw/introduction/overview/ # # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Frontmatter env variables: # - TARGET_REPOSITORY: (main workflow) # @@ -30,6 +34,8 @@ # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -70,6 +76,11 @@ run-name: "Contribution Check" env: TARGET_REPOSITORY: ${{ vars.TARGET_REPOSITORY || github.repository }} + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' jobs: activation: @@ -104,6 +115,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -185,20 +198,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_f8ad5166b404703a_EOF' + cat << 'GH_AW_PROMPT_6fe39465607f31b1_EOF' - GH_AW_PROMPT_f8ad5166b404703a_EOF + GH_AW_PROMPT_6fe39465607f31b1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_f8ad5166b404703a_EOF' + cat << 'GH_AW_PROMPT_6fe39465607f31b1_EOF' Tools: add_comment(max:10), create_issue, add_labels(max:4), missing_tool, missing_data, noop - GH_AW_PROMPT_f8ad5166b404703a_EOF + GH_AW_PROMPT_6fe39465607f31b1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_f8ad5166b404703a_EOF' + cat << 'GH_AW_PROMPT_6fe39465607f31b1_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -227,13 +240,14 @@ jobs: {{/if}} - GH_AW_PROMPT_f8ad5166b404703a_EOF + GH_AW_PROMPT_6fe39465607f31b1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_f8ad5166b404703a_EOF' + cat << 'GH_AW_PROMPT_6fe39465607f31b1_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/contribution-check.md}} - GH_AW_PROMPT_f8ad5166b404703a_EOF + GH_AW_PROMPT_6fe39465607f31b1_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -367,6 +381,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -509,9 +525,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_7b23552125b5f3f6_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_af21d4198eda6d48_EOF' {"add_comment":{"hide_older_comments":true,"max":10,"target":"*","target-repo":"${{ vars.TARGET_REPOSITORY }}"},"add_labels":{"allowed":["spam","needs-work","outdated","lgtm"],"max":4,"target":"*","target-repo":"${{ vars.TARGET_REPOSITORY }}"},"create_issue":{"close_older_issues":true,"expires":24,"group_by_day":true,"labels":["contribution-report"],"max":1,"title_prefix":"[Contribution Check Report]"},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_7b23552125b5f3f6_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_af21d4198eda6d48_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -752,11 +768,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_aeddd90d4e6bfc91_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d727111e19510e7d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -778,10 +794,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_aeddd90d4e6bfc91_EOF + GH_AW_MCP_CONFIG_d727111e19510e7d_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -982,6 +1004,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1006,6 +1037,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1417,6 +1450,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Contribution Check" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/contribution-check.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/contribution-check.md b/.github/workflows/contribution-check.md index e09b8c1e49e..b6319adbe76 100644 --- a/.github/workflows/contribution-check.md +++ b/.github/workflows/contribution-check.md @@ -16,6 +16,8 @@ engine: id: copilot agent: contribution-checker +imports: + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -95,6 +97,7 @@ steps: echo "ℹ No CONTRIBUTING.md found in $TARGET_REPOSITORY (checked root, .github/, docs/)" fi + --- ## Target Repository diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index e88e4598a89..ba11518d2ce 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"76a2c458143195c36b8a394940d48ff2c2e07e9071944599dad5d7ca2f61a01a","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"3a7c34dc63959b3ad4da2b45014d0df5e4d7b55e4a1b354723c381a4da60c6dc","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -204,22 +204,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF' + cat << 'GH_AW_PROMPT_c1a849f5dd4bea78_EOF' - GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF + GH_AW_PROMPT_c1a849f5dd4bea78_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF' + cat << 'GH_AW_PROMPT_c1a849f5dd4bea78_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF + GH_AW_PROMPT_c1a849f5dd4bea78_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF' + cat << 'GH_AW_PROMPT_c1a849f5dd4bea78_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -248,18 +248,18 @@ jobs: {{/if}} - GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF + GH_AW_PROMPT_c1a849f5dd4bea78_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF' + cat << 'GH_AW_PROMPT_c1a849f5dd4bea78_EOF' {{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-agent-analysis.md}} - GH_AW_PROMPT_e8af2cc2a2fbd6e3_EOF + GH_AW_PROMPT_c1a849f5dd4bea78_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -522,9 +522,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_fef0f45d463550f9_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f9bb70021cec309c_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[copilot-agent-analysis] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_fef0f45d463550f9_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_f9bb70021cec309c_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -718,7 +718,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_56a5fb20a7130da5_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_9ddf7081554e6901_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -764,7 +764,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_56a5fb20a7130da5_EOF + GH_AW_MCP_CONFIG_9ddf7081554e6901_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-agent-analysis.md b/.github/workflows/copilot-agent-analysis.md index 6a6bd8b34d2..7e1b7d12cfc 100644 --- a/.github/workflows/copilot-agent-analysis.md +++ b/.github/workflows/copilot-agent-analysis.md @@ -32,11 +32,13 @@ imports: description: "Historical agent performance metrics" - shared/copilot-pr-analysis-base.md + - shared/observability-otlp.md timeout-minutes: 15 tools: cli-proxy: true + --- # Copilot Agent PR Analysis diff --git a/.github/workflows/copilot-cli-deep-research.lock.yml b/.github/workflows/copilot-cli-deep-research.lock.yml index 8ed97ea3c7d..3da127d6f26 100644 --- a/.github/workflows/copilot-cli-deep-research.lock.yml +++ b/.github/workflows/copilot-cli-deep-research.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"86dbbee9ae8243041eaed6efcf3a46480fc3f28a5651382336940dfe2f8274c3","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cf64ccf9415c64adee4a5281eb84fea9eed2c89504825f795dcc3cd654b4b6c3","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,11 +26,14 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -70,6 +73,13 @@ concurrency: run-name: "Copilot CLI Deep Research Agent" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -102,6 +112,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -178,21 +190,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_c1684abdeb21894a_EOF' + cat << 'GH_AW_PROMPT_98ac1634704158ce_EOF' - GH_AW_PROMPT_c1684abdeb21894a_EOF + GH_AW_PROMPT_98ac1634704158ce_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_c1684abdeb21894a_EOF' + cat << 'GH_AW_PROMPT_98ac1634704158ce_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_c1684abdeb21894a_EOF + GH_AW_PROMPT_98ac1634704158ce_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_c1684abdeb21894a_EOF' + cat << 'GH_AW_PROMPT_98ac1634704158ce_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -221,14 +233,15 @@ jobs: {{/if}} - GH_AW_PROMPT_c1684abdeb21894a_EOF + GH_AW_PROMPT_98ac1634704158ce_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_c1684abdeb21894a_EOF' + cat << 'GH_AW_PROMPT_98ac1634704158ce_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-cli-deep-research.md}} - GH_AW_PROMPT_c1684abdeb21894a_EOF + GH_AW_PROMPT_98ac1634704158ce_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -376,6 +389,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -462,9 +477,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_260e6dff76be6ad1_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_158d4dac3ac229ce_EOF' {"create_discussion":{"category":"research","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[copilot-cli-research] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":204800,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_260e6dff76be6ad1_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_158d4dac3ac229ce_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -652,11 +667,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_047c782045d12069_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_3a12367f8c73e6c8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -678,10 +693,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_047c782045d12069_EOF + GH_AW_MCP_CONFIG_3a12367f8c73e6c8_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -905,6 +926,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -942,6 +972,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1449,6 +1481,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Copilot CLI Deep Research Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-cli-deep-research.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/copilot-cli-deep-research.md b/.github/workflows/copilot-cli-deep-research.md index 6698d65c65f..b2447ed50dc 100644 --- a/.github/workflows/copilot-cli-deep-research.md +++ b/.github/workflows/copilot-cli-deep-research.md @@ -48,8 +48,10 @@ timeout-minutes: 20 strict: true imports: - shared/reporting.md + - shared/observability-otlp.md features: copilot-requests: true + --- # Copilot CLI Deep Research Agent diff --git a/.github/workflows/copilot-opt.lock.yml b/.github/workflows/copilot-opt.lock.yml index ce65f1ad744..8cdba534138 100644 --- a/.github/workflows/copilot-opt.lock.yml +++ b/.github/workflows/copilot-opt.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"379b1a1b41bd9a3438dac4fd0d371a73ccedfb0d3e8025ddf06bf38be796a338","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c7c2d6ae6c748beed0cdcf646e5bc5b24eff94789ad12bd8a32bcfc4a2fd1e41","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -29,12 +29,15 @@ # - shared/copilot-pr-data-fetch.md # - shared/jqschema.md # - shared/copilot-session-data-fetch.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -76,6 +79,13 @@ concurrency: run-name: "Copilot Opt" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -109,6 +119,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -189,21 +201,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_a5169ebc5b8b9687_EOF' + cat << 'GH_AW_PROMPT_6c65c9a985cebc9b_EOF' - GH_AW_PROMPT_a5169ebc5b8b9687_EOF + GH_AW_PROMPT_6c65c9a985cebc9b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_a5169ebc5b8b9687_EOF' + cat << 'GH_AW_PROMPT_6c65c9a985cebc9b_EOF' Tools: create_issue(max:3), missing_tool, missing_data, noop - GH_AW_PROMPT_a5169ebc5b8b9687_EOF + GH_AW_PROMPT_6c65c9a985cebc9b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_a5169ebc5b8b9687_EOF' + cat << 'GH_AW_PROMPT_6c65c9a985cebc9b_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -232,17 +244,18 @@ jobs: {{/if}} - GH_AW_PROMPT_a5169ebc5b8b9687_EOF + GH_AW_PROMPT_6c65c9a985cebc9b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_a5169ebc5b8b9687_EOF' + cat << 'GH_AW_PROMPT_6c65c9a985cebc9b_EOF' {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/copilot-session-data-fetch.md}} {{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-opt.md}} - GH_AW_PROMPT_a5169ebc5b8b9687_EOF + GH_AW_PROMPT_6c65c9a985cebc9b_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -379,6 +392,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -489,9 +504,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d344924b8fcec5a7_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a79a2db96d293a5f_EOF' {"create_issue":{"close_older_issues":true,"labels":["copilot-opt","optimization","cookie"],"max":3,"title_prefix":"[copilot-opt] "},"create_report_incomplete_issue":{},"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_d344924b8fcec5a7_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_a79a2db96d293a5f_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -689,11 +704,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b8dc86971c84aec9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_834c4dbef94aac46_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -715,10 +730,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_b8dc86971c84aec9_EOF + GH_AW_MCP_CONFIG_834c4dbef94aac46_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -949,6 +970,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -982,6 +1012,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1389,6 +1421,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Copilot Opt" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/copilot-opt.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/copilot-opt.md b/.github/workflows/copilot-opt.md index 04830dbd4a0..d2be7817e76 100644 --- a/.github/workflows/copilot-opt.md +++ b/.github/workflows/copilot-opt.md @@ -42,7 +42,9 @@ imports: - shared/copilot-session-data-fetch.md - shared/copilot-pr-data-fetch.md - shared/reporting.md + - shared/observability-otlp.md timeout-minutes: 30 + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index 673c8c1e5c7..d3a4f2f7f58 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a665273f1f8692e3b2efdb8d399a1945db8fc3d81498818bbcbf98de44fa7cee","agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ae704c71cc3592379e0f93e6216a80e8e924f4af7526b2ece5945eefff1dbf96","agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -188,31 +188,31 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_4802dcbccdc6c215_EOF' + cat << 'GH_AW_PROMPT_d1825dd664ed2b4b_EOF' - GH_AW_PROMPT_4802dcbccdc6c215_EOF + GH_AW_PROMPT_d1825dd664ed2b4b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_4802dcbccdc6c215_EOF' + cat << 'GH_AW_PROMPT_d1825dd664ed2b4b_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_4802dcbccdc6c215_EOF + GH_AW_PROMPT_d1825dd664ed2b4b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_4802dcbccdc6c215_EOF' + cat << 'GH_AW_PROMPT_d1825dd664ed2b4b_EOF' {{#runtime-import .github/workflows/shared/gh.md}} {{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-pr-merged-report.md}} - GH_AW_PROMPT_4802dcbccdc6c215_EOF + GH_AW_PROMPT_d1825dd664ed2b4b_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -434,9 +434,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_cfaa75db4c86d7ae_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_8e41c6cf3e63f0ad_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[copilot-pr-merged-report] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_cfaa75db4c86d7ae_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_8e41c6cf3e63f0ad_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -599,7 +599,7 @@ jobs: - name: Write MCP Scripts Config run: | mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_06294c0b52d7ed09_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_95292c23eb5d8318_EOF' { "serverName": "mcpscripts", "version": "1.0.0", @@ -629,8 +629,8 @@ jobs: } ] } - GH_AW_MCP_SCRIPTS_TOOLS_06294c0b52d7ed09_EOF - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_32c9bddf7c845a4b_EOF' + GH_AW_MCP_SCRIPTS_TOOLS_95292c23eb5d8318_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_48987cc3d52ac9ac_EOF' const path = require("path"); const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs"); const configPath = path.join(__dirname, "tools.json"); @@ -644,12 +644,12 @@ jobs: console.error("Failed to start mcp-scripts HTTP server:", error); process.exit(1); }); - GH_AW_MCP_SCRIPTS_SERVER_32c9bddf7c845a4b_EOF + GH_AW_MCP_SCRIPTS_SERVER_48987cc3d52ac9ac_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" - name: Write MCP Scripts Tool Files run: | - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" << 'GH_AW_MCP_SCRIPTS_SH_GH_5ac8f1fbe241ec92_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" << 'GH_AW_MCP_SCRIPTS_SH_GH_ea20a3f8f0367490_EOF' #!/bin/bash # Auto-generated mcp-script tool: gh # Execute any gh CLI command. This tool is accessible as 'mcpscripts-gh'. Provide the full command after 'gh' (e.g., args: 'pr list --limit 5'). The tool will run: gh . Use single quotes ' for complex args to avoid shell interpretation issues. @@ -661,7 +661,7 @@ jobs: GH_TOKEN="$GH_AW_GH_TOKEN" gh $INPUT_ARGS - GH_AW_MCP_SCRIPTS_SH_GH_5ac8f1fbe241ec92_EOF + GH_AW_MCP_SCRIPTS_SH_GH_ea20a3f8f0367490_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/gh.sh" - name: Generate MCP Scripts Server Config @@ -734,7 +734,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_3e29f669fcf8ddfc_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ec9bf980c78f2602_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "mcpscripts": { @@ -765,7 +765,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_3e29f669fcf8ddfc_EOF + GH_AW_MCP_CONFIG_ec9bf980c78f2602_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-pr-merged-report.md b/.github/workflows/copilot-pr-merged-report.md index 8e641549b9a..3b6e6f6da1a 100644 --- a/.github/workflows/copilot-pr-merged-report.md +++ b/.github/workflows/copilot-pr-merged-report.md @@ -34,9 +34,11 @@ imports: - shared/gh.md - shared/copilot-pr-analysis-base.md + - shared/observability-otlp.md timeout-minutes: 10 features: copilot-requests: true + --- # Daily Copilot PR Merged Report diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index aafa47fa7a0..fa221a5c2b4 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a6af1109c23cf60251b6671ad885c154c62971759586814d18245fa443a115da","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e680d07d85ca99dc6dc3ee4be59cdb3c9d1c49e7bf28efa85f1641c408445d8c","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -200,24 +200,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_d8c3458a4290166f_EOF' + cat << 'GH_AW_PROMPT_8606fe4617a8c3f3_EOF' - GH_AW_PROMPT_d8c3458a4290166f_EOF + GH_AW_PROMPT_8606fe4617a8c3f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_d8c3458a4290166f_EOF' + cat << 'GH_AW_PROMPT_8606fe4617a8c3f3_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_d8c3458a4290166f_EOF + GH_AW_PROMPT_8606fe4617a8c3f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_d8c3458a4290166f_EOF' + cat << 'GH_AW_PROMPT_8606fe4617a8c3f3_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -246,9 +246,9 @@ jobs: {{/if}} - GH_AW_PROMPT_d8c3458a4290166f_EOF + GH_AW_PROMPT_8606fe4617a8c3f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_d8c3458a4290166f_EOF' + cat << 'GH_AW_PROMPT_8606fe4617a8c3f3_EOF' {{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}} {{#runtime-import .github/workflows/shared/python-dataviz.md}} @@ -259,7 +259,7 @@ jobs: {{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-pr-nlp-analysis.md}} - GH_AW_PROMPT_d8c3458a4290166f_EOF + GH_AW_PROMPT_8606fe4617a8c3f3_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -552,9 +552,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_a9a203b4ea81633a_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_07cb27f9768f0b1e_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[nlp-analysis] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_a9a203b4ea81633a_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_07cb27f9768f0b1e_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -762,7 +762,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_d9db664666816742_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c5ecfc3538b5d2e9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -809,7 +809,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_d9db664666816742_EOF + GH_AW_MCP_CONFIG_c5ecfc3538b5d2e9_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-pr-nlp-analysis.md b/.github/workflows/copilot-pr-nlp-analysis.md index 4c9425e52f5..be76fb470d4 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.md +++ b/.github/workflows/copilot-pr-nlp-analysis.md @@ -37,6 +37,7 @@ imports: - shared/python-nlp.md - shared/reporting.md + - shared/observability-otlp.md steps: - name: Fetch PR comments for detailed analysis env: @@ -67,6 +68,7 @@ features: tools: cli-proxy: true + --- # Copilot PR Conversation NLP Analysis diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index b1b24934ad1..2246195dc59 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"44b66dc9e2e7f1da70438e3e8ae85cf6ac14176c36e32b65630ad451fbf6b42e","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"de8678d78d372fc79f77f85aa0136ad2b76a6b7f04a8773a248f28960a2a52d6","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -197,22 +197,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_1da7095d771f1966_EOF' + cat << 'GH_AW_PROMPT_ffa4c570c65d54ac_EOF' - GH_AW_PROMPT_1da7095d771f1966_EOF + GH_AW_PROMPT_ffa4c570c65d54ac_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_1da7095d771f1966_EOF' + cat << 'GH_AW_PROMPT_ffa4c570c65d54ac_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_1da7095d771f1966_EOF + GH_AW_PROMPT_ffa4c570c65d54ac_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_1da7095d771f1966_EOF' + cat << 'GH_AW_PROMPT_ffa4c570c65d54ac_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -241,18 +241,18 @@ jobs: {{/if}} - GH_AW_PROMPT_1da7095d771f1966_EOF + GH_AW_PROMPT_ffa4c570c65d54ac_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_1da7095d771f1966_EOF' + cat << 'GH_AW_PROMPT_ffa4c570c65d54ac_EOF' {{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-pr-prompt-analysis.md}} - GH_AW_PROMPT_1da7095d771f1966_EOF + GH_AW_PROMPT_ffa4c570c65d54ac_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -518,9 +518,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3faca52074454d18_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_6ad5288ac8493a62_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[prompt-analysis] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_3faca52074454d18_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_6ad5288ac8493a62_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -715,7 +715,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_e5160419d034c2dd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ef669893c51243d9_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -762,7 +762,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_e5160419d034c2dd_EOF + GH_AW_MCP_CONFIG_ef669893c51243d9_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-pr-prompt-analysis.md b/.github/workflows/copilot-pr-prompt-analysis.md index cc9414d07df..22973d93df8 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.md +++ b/.github/workflows/copilot-pr-prompt-analysis.md @@ -34,6 +34,7 @@ imports: description: "Historical prompt pattern analysis" - shared/copilot-pr-analysis-base.md + - shared/observability-otlp.md timeout-minutes: 15 features: @@ -41,6 +42,7 @@ features: tools: cli-proxy: true + --- # Copilot PR Prompt Pattern Analysis diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index ed8ed5c7e10..eb600da5d51 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4fe86b361d0266c903e7aed5b5162e363187b2baf68c44c02ca3f2b17ed835ce","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e3ddf222aa674527da3e52613dfbfe29d6093b8a998ccc787e77b9ba0daac6b5","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -209,24 +209,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_93a7c12e8155098f_EOF' + cat << 'GH_AW_PROMPT_26e83b4824f840f8_EOF' - GH_AW_PROMPT_93a7c12e8155098f_EOF + GH_AW_PROMPT_26e83b4824f840f8_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_93a7c12e8155098f_EOF' + cat << 'GH_AW_PROMPT_26e83b4824f840f8_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_93a7c12e8155098f_EOF + GH_AW_PROMPT_26e83b4824f840f8_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_93a7c12e8155098f_EOF' + cat << 'GH_AW_PROMPT_26e83b4824f840f8_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -255,20 +255,20 @@ jobs: {{/if}} - GH_AW_PROMPT_93a7c12e8155098f_EOF + GH_AW_PROMPT_26e83b4824f840f8_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_93a7c12e8155098f_EOF' + cat << 'GH_AW_PROMPT_26e83b4824f840f8_EOF' {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/copilot-session-data-fetch.md}} {{#runtime-import .github/workflows/shared/session-analysis-charts.md}} {{#runtime-import .github/workflows/shared/session-analysis-strategies.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/python-dataviz.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/copilot-session-insights.md}} - GH_AW_PROMPT_93a7c12e8155098f_EOF + GH_AW_PROMPT_26e83b4824f840f8_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -555,9 +555,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_3ff5ba234cfa84e8_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_06486e815d77e58e_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[copilot-session-insights] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_3ff5ba234cfa84e8_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_06486e815d77e58e_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -761,7 +761,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_e22e943d93d1cdb2_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_b3a495f2b455d7a8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -792,7 +792,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_e22e943d93d1cdb2_EOF + GH_AW_MCP_CONFIG_b3a495f2b455d7a8_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-session-insights.md b/.github/workflows/copilot-session-insights.md index 9ef999feb1d..069d5381e17 100644 --- a/.github/workflows/copilot-session-insights.md +++ b/.github/workflows/copilot-session-insights.md @@ -50,8 +50,10 @@ imports: - shared/session-analysis-charts.md - shared/session-analysis-strategies.md + - shared/observability-otlp.md timeout-minutes: 45 + --- # Copilot coding agent Session Analysis diff --git a/.github/workflows/copilot-token-audit.lock.yml b/.github/workflows/copilot-token-audit.lock.yml index 64e554f35ae..e085fba2ecc 100644 --- a/.github/workflows/copilot-token-audit.lock.yml +++ b/.github/workflows/copilot-token-audit.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"467577d5171eeab646a24dee35465fba5737a7b032d2b5838b87e598bed1ed3f","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7430388914ae348ed20b0daad7f86ab4a28806a4cf32176948c289c430a73203","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -26,6 +26,10 @@ # # Source: githubnext/agentic-ops/workflows/copilot-token-audit.md@c780d8324935fe1fb30fce545832c10a8f904039 # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN @@ -190,24 +194,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_ea7b82c9b6db7357_EOF' + cat << 'GH_AW_PROMPT_9042203b32cf89b0_EOF' - GH_AW_PROMPT_ea7b82c9b6db7357_EOF + GH_AW_PROMPT_9042203b32cf89b0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_ea7b82c9b6db7357_EOF' + cat << 'GH_AW_PROMPT_9042203b32cf89b0_EOF' Tools: create_issue, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_ea7b82c9b6db7357_EOF + GH_AW_PROMPT_9042203b32cf89b0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_ea7b82c9b6db7357_EOF' + cat << 'GH_AW_PROMPT_9042203b32cf89b0_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -236,12 +240,13 @@ jobs: {{/if}} - GH_AW_PROMPT_ea7b82c9b6db7357_EOF + GH_AW_PROMPT_9042203b32cf89b0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_ea7b82c9b6db7357_EOF' + cat << 'GH_AW_PROMPT_9042203b32cf89b0_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/copilot-token-audit.md}} - GH_AW_PROMPT_ea7b82c9b6db7357_EOF + GH_AW_PROMPT_9042203b32cf89b0_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -548,9 +553,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_e8fefb804a755680_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_3c3eab52c4dcc240_EOF {"create_issue":{"close_older_issues":true,"expires":72,"max":1,"title_prefix":"[copilot-token-audit] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":51200}]},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_e8fefb804a755680_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_3c3eab52c4dcc240_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -767,7 +772,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_127afb9acd60d2b6_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d170b811d5ac9836_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -833,7 +838,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_127afb9acd60d2b6_EOF + GH_AW_MCP_CONFIG_d170b811d5ac9836_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-token-audit.md b/.github/workflows/copilot-token-audit.md index 9d0cff1c9fb..d1c79121846 100644 --- a/.github/workflows/copilot-token-audit.md +++ b/.github/workflows/copilot-token-audit.md @@ -24,6 +24,8 @@ safe-outputs: upload-asset: max: 5 allowed-exts: [.png, .jpg, .jpeg, .svg] +imports: + - shared/observability-otlp.md tools: agentic-workflows: bash: @@ -80,6 +82,7 @@ timeout-minutes: 25 features: copilot-requests: true source: githubnext/agentic-ops/workflows/copilot-token-audit.md@c780d8324935fe1fb30fce545832c10a8f904039 + --- # Daily Copilot Token Usage Audit diff --git a/.github/workflows/copilot-token-optimizer.lock.yml b/.github/workflows/copilot-token-optimizer.lock.yml index e5f13e57cc2..84422e5062d 100644 --- a/.github/workflows/copilot-token-optimizer.lock.yml +++ b/.github/workflows/copilot-token-optimizer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f002b9c6104909a29c74b198dba6992105e5b63418b571c341e32f76a4b6ab5b","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"19a3844810750fcbbc4768d5399b51a40525dcb48b238602d8a042268a537a0e","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -26,6 +26,10 @@ # # Source: githubnext/agentic-ops/workflows/copilot-token-optimizer.md@c780d8324935fe1fb30fce545832c10a8f904039 # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN @@ -193,21 +197,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_1a52fbf7eefdb969_EOF' + cat << 'GH_AW_PROMPT_34816915cc9d639a_EOF' - GH_AW_PROMPT_1a52fbf7eefdb969_EOF + GH_AW_PROMPT_34816915cc9d639a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_1a52fbf7eefdb969_EOF' + cat << 'GH_AW_PROMPT_34816915cc9d639a_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_1a52fbf7eefdb969_EOF + GH_AW_PROMPT_34816915cc9d639a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_1a52fbf7eefdb969_EOF' + cat << 'GH_AW_PROMPT_34816915cc9d639a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -236,12 +240,13 @@ jobs: {{/if}} - GH_AW_PROMPT_1a52fbf7eefdb969_EOF + GH_AW_PROMPT_34816915cc9d639a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_1a52fbf7eefdb969_EOF' + cat << 'GH_AW_PROMPT_34816915cc9d639a_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/copilot-token-optimizer.md}} - GH_AW_PROMPT_1a52fbf7eefdb969_EOF + GH_AW_PROMPT_34816915cc9d639a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -482,9 +487,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_dcd3b12e40151b41_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3a2ce9e7946d77ce_EOF' {"create_issue":{"close_older_issues":true,"expires":168,"max":1,"title_prefix":"[copilot-token-optimizer] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":51200}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_dcd3b12e40151b41_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_3a2ce9e7946d77ce_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -684,7 +689,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b25d738f2f65c8aa_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_dfdc2b46c642196b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -715,7 +720,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_b25d738f2f65c8aa_EOF + GH_AW_MCP_CONFIG_dfdc2b46c642196b_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/copilot-token-optimizer.md b/.github/workflows/copilot-token-optimizer.md index eacc3e79ef8..1a5fd534ed7 100644 --- a/.github/workflows/copilot-token-optimizer.md +++ b/.github/workflows/copilot-token-optimizer.md @@ -15,6 +15,8 @@ observability: headers: ${{ secrets.GH_AW_OTEL_HEADERS }} tracker-id: copilot-token-optimizer engine: copilot +imports: + - shared/observability-otlp.md tools: github: mode: gh-proxy @@ -114,6 +116,7 @@ steps: echo "ℹ️ No previous optimization history found." fi source: githubnext/agentic-ops/workflows/copilot-token-optimizer.md@c780d8324935fe1fb30fce545832c10a8f904039 + --- # Copilot Token Usage Optimizer diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index cd352a3bed3..0d7a15c7a53 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ab3b3a18d65f7957264e5d6f70a653635eea9856bc3d3ba6514e49cf0502890f","strict":true,"agent_id":"copilot"} -# 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":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"647b315d95e193719dded1c53ac8c40e9afc9482b5dc15e78c39ec2cde767bbe","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,10 +24,16 @@ # # Generates new agentic workflow markdown files based on user requests when invoked with /craft command # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -62,6 +68,13 @@ concurrency: run-name: "Workflow Craft Agent" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -103,6 +116,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -217,23 +232,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_f58b2a670c66aa05_EOF' + cat << 'GH_AW_PROMPT_aada0b6cd6fb8084_EOF' - GH_AW_PROMPT_f58b2a670c66aa05_EOF + GH_AW_PROMPT_aada0b6cd6fb8084_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_f58b2a670c66aa05_EOF' + cat << 'GH_AW_PROMPT_aada0b6cd6fb8084_EOF' Tools: add_comment, push_to_pull_request_branch, missing_tool, missing_data, noop - GH_AW_PROMPT_f58b2a670c66aa05_EOF + GH_AW_PROMPT_aada0b6cd6fb8084_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_push_to_pr_branch.md" - cat << 'GH_AW_PROMPT_f58b2a670c66aa05_EOF' + cat << 'GH_AW_PROMPT_aada0b6cd6fb8084_EOF' - GH_AW_PROMPT_f58b2a670c66aa05_EOF + GH_AW_PROMPT_aada0b6cd6fb8084_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_f58b2a670c66aa05_EOF' + cat << 'GH_AW_PROMPT_aada0b6cd6fb8084_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -262,7 +277,7 @@ jobs: {{/if}} - GH_AW_PROMPT_f58b2a670c66aa05_EOF + GH_AW_PROMPT_aada0b6cd6fb8084_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" if [ "$GITHUB_EVENT_NAME" = "issue_comment" ] && [ -n "$GH_AW_IS_PR_COMMENT" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review_comment" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review" ]; then cat "${RUNNER_TEMP}/gh-aw/prompts/pr_context_prompt.md" @@ -270,11 +285,12 @@ jobs: if [ "$GITHUB_EVENT_NAME" = "issue_comment" ] && [ -n "$GH_AW_IS_PR_COMMENT" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review_comment" ] || [ "$GITHUB_EVENT_NAME" = "pull_request_review" ]; then cat "${RUNNER_TEMP}/gh-aw/prompts/pr_context_push_to_pr_branch_guidance.md" fi - cat << 'GH_AW_PROMPT_f58b2a670c66aa05_EOF' + cat << 'GH_AW_PROMPT_aada0b6cd6fb8084_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/craft.md}} - GH_AW_PROMPT_f58b2a670c66aa05_EOF + GH_AW_PROMPT_aada0b6cd6fb8084_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -414,6 +430,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -495,9 +513,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_fff77007cf83fe29_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_7fd0064ae66ac97a_EOF' {"add_comment":{"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_to_pull_request_branch":{"if_no_changes":"warn","max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_fff77007cf83fe29_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_7fd0064ae66ac97a_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -701,11 +719,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_043b5cc280709959_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d8bf39a78dbb4f1f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -727,10 +745,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_043b5cc280709959_EOF + GH_AW_MCP_CONFIG_d8bf39a78dbb4f1f_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -932,6 +956,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -954,6 +987,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1442,6 +1477,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Workflow Craft Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/craft.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/craft.md b/.github/workflows/craft.md index af16338e5e5..c5c66147d5a 100644 --- a/.github/workflows/craft.md +++ b/.github/workflows/craft.md @@ -9,6 +9,8 @@ permissions: issues: read pull-requests: read engine: copilot +imports: + - shared/observability-otlp.md tools: cli-proxy: true edit: @@ -34,6 +36,7 @@ safe-outputs: run-failure: "🛠️ Forge cooling down! [{workflow_name}]({run_url}) {status}. The anvil awaits another attempt..." features: copilot-requests: true + --- # Workflow Craft Agent diff --git a/.github/workflows/daily-architecture-diagram.lock.yml b/.github/workflows/daily-architecture-diagram.lock.yml index fbd38f57dac..703849594f8 100644 --- a/.github/workflows/daily-architecture-diagram.lock.yml +++ b/.github/workflows/daily-architecture-diagram.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"57075b5ba7f895be8a3f55bc46390c2923cf334537b96c709a95a198069786ab","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1906b09fc10742b6e8a0027ec676f5c83ff783429539d5fc295c962e9f471fee","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -193,24 +193,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_41836ff54cbcf452_EOF' + cat << 'GH_AW_PROMPT_3a2092b4baac3e87_EOF' - GH_AW_PROMPT_41836ff54cbcf452_EOF + GH_AW_PROMPT_3a2092b4baac3e87_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_41836ff54cbcf452_EOF' + cat << 'GH_AW_PROMPT_3a2092b4baac3e87_EOF' Tools: create_issue, create_discussion, create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_41836ff54cbcf452_EOF + GH_AW_PROMPT_3a2092b4baac3e87_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_41836ff54cbcf452_EOF' + cat << 'GH_AW_PROMPT_3a2092b4baac3e87_EOF' - GH_AW_PROMPT_41836ff54cbcf452_EOF + GH_AW_PROMPT_3a2092b4baac3e87_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_41836ff54cbcf452_EOF' + cat << 'GH_AW_PROMPT_3a2092b4baac3e87_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -239,14 +239,14 @@ jobs: {{/if}} - GH_AW_PROMPT_41836ff54cbcf452_EOF + GH_AW_PROMPT_3a2092b4baac3e87_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_41836ff54cbcf452_EOF' + cat << 'GH_AW_PROMPT_3a2092b4baac3e87_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-architecture-diagram.md}} - GH_AW_PROMPT_41836ff54cbcf452_EOF + GH_AW_PROMPT_3a2092b4baac3e87_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -476,9 +476,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_36059d8c5fac87d4_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_23dc05f565209755_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[architecture-diagram] "},"create_issue":{"close_older_issues":true,"expires":168,"labels":["architecture","diagram"],"max":1,"title_prefix":"🏗️ Architecture Diagram:"},"create_pull_request":{"expires":168,"labels":["architecture","diagram","documentation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"title_prefix":"[architecture] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_36059d8c5fac87d4_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_23dc05f565209755_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -752,7 +752,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_acd1d691baf33722_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_82ffeee66583d642_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -799,7 +799,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_acd1d691baf33722_EOF + GH_AW_MCP_CONFIG_82ffeee66583d642_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-architecture-diagram.md b/.github/workflows/daily-architecture-diagram.md index b0ca2aff4c0..e5a9c2fdc47 100644 --- a/.github/workflows/daily-architecture-diagram.md +++ b/.github/workflows/daily-architecture-diagram.md @@ -37,10 +37,12 @@ imports: title-prefix: "[architecture-diagram] " expires: 3d + - shared/observability-otlp.md timeout-minutes: 20 strict: true features: copilot-requests: true + --- # Architecture Diagram Generator diff --git a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml index 1f6ed4d0bf9..655ea0b83ed 100644 --- a/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml +++ b/.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"ebbe8bdc3bd1688889cc261f6f39d2f5ba7c158ede63b281ba08674170bf4139","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"448c4fb5b2bbbfc746ff411590e208e05f0f30e234e922e43ea439c980e35051","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -232,23 +232,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_2b00ec1ac49faef5_EOF' + cat << 'GH_AW_PROMPT_891cb0f429aa006e_EOF' - GH_AW_PROMPT_2b00ec1ac49faef5_EOF + GH_AW_PROMPT_891cb0f429aa006e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_2b00ec1ac49faef5_EOF' + cat << 'GH_AW_PROMPT_891cb0f429aa006e_EOF' Tools: create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_2b00ec1ac49faef5_EOF + GH_AW_PROMPT_891cb0f429aa006e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_2b00ec1ac49faef5_EOF' + cat << 'GH_AW_PROMPT_891cb0f429aa006e_EOF' - GH_AW_PROMPT_2b00ec1ac49faef5_EOF + GH_AW_PROMPT_891cb0f429aa006e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_2b00ec1ac49faef5_EOF' + cat << 'GH_AW_PROMPT_891cb0f429aa006e_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -277,14 +277,14 @@ jobs: {{/if}} - GH_AW_PROMPT_2b00ec1ac49faef5_EOF + GH_AW_PROMPT_891cb0f429aa006e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_2b00ec1ac49faef5_EOF' + cat << 'GH_AW_PROMPT_891cb0f429aa006e_EOF' {{#runtime-import .github/workflows/shared/otel.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/daily-astrostylelite-markdown-spellcheck.md}} - GH_AW_PROMPT_2b00ec1ac49faef5_EOF + GH_AW_PROMPT_891cb0f429aa006e_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -502,9 +502,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f874194cf4f1208a_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_365f9a80f8ae0422_EOF' {"create_pull_request":{"allowed_files":["docs/src/content/**/*.md","docs/src/content/**/*.mdx"],"draft":false,"expires":72,"fallback_as_issue":false,"labels":["documentation","spellcheck","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"preserve_branch_name":true,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","CLAUDE.md","AGENTS.md"],"title_prefix":"[docs] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_f874194cf4f1208a_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_365f9a80f8ae0422_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -713,7 +713,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b5da6cbb8b1c149d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_79f9f525525d8d7b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -759,7 +759,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_b5da6cbb8b1c149d_EOF + GH_AW_MCP_CONFIG_79f9f525525d8d7b_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-astrostylelite-markdown-spellcheck.md b/.github/workflows/daily-astrostylelite-markdown-spellcheck.md index 7ca2010204f..eb4012b3659 100644 --- a/.github/workflows/daily-astrostylelite-markdown-spellcheck.md +++ b/.github/workflows/daily-astrostylelite-markdown-spellcheck.md @@ -277,6 +277,8 @@ experiments: imports: - shared/otel.md + + - shared/observability-otlp.md --- # Daily AstroStyleLite Markdown Spellcheck diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml index 1cdbbeaa0ce..56e67c49be0 100644 --- a/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml +++ b/.github/workflows/daily-aw-cross-repo-compile-check.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"145fcfd468865b46986f6514b7fb617cd6f83fe1c99fd966e7a193c444983f3a","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"302f66dd00b3bf3142a9ed94ed81568c78c43199433ccf2b81dd74279828bcd3","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -199,21 +199,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_0bfb591041326100_EOF' + cat << 'GH_AW_PROMPT_2ab02154068d7415_EOF' - GH_AW_PROMPT_0bfb591041326100_EOF + GH_AW_PROMPT_2ab02154068d7415_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_0bfb591041326100_EOF' + cat << 'GH_AW_PROMPT_2ab02154068d7415_EOF' Tools: create_issue(max:6), missing_tool, missing_data, noop - GH_AW_PROMPT_0bfb591041326100_EOF + GH_AW_PROMPT_2ab02154068d7415_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_0bfb591041326100_EOF' + cat << 'GH_AW_PROMPT_2ab02154068d7415_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -242,15 +242,15 @@ jobs: {{/if}} - GH_AW_PROMPT_0bfb591041326100_EOF + GH_AW_PROMPT_2ab02154068d7415_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_0bfb591041326100_EOF' + cat << 'GH_AW_PROMPT_2ab02154068d7415_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/otel.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/daily-aw-cross-repo-compile-check.md}} - GH_AW_PROMPT_0bfb591041326100_EOF + GH_AW_PROMPT_2ab02154068d7415_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -480,9 +480,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_8c79e44bbad478b3_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_6f791bf17a93a466_EOF' {"create_issue":{"close_older_issues":true,"expires":168,"labels":["automation","compatibility","gh-aw"],"max":6,"title_prefix":"[aw-compat] "},"create_report_incomplete_issue":{},"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_8c79e44bbad478b3_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_6f791bf17a93a466_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -683,7 +683,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_53a85e8a3ff87603_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_2521e9c2bee0f696_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -714,7 +714,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_53a85e8a3ff87603_EOF + GH_AW_MCP_CONFIG_2521e9c2bee0f696_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-aw-cross-repo-compile-check.md b/.github/workflows/daily-aw-cross-repo-compile-check.md index b073a3de2dd..0bc28fdcc01 100644 --- a/.github/workflows/daily-aw-cross-repo-compile-check.md +++ b/.github/workflows/daily-aw-cross-repo-compile-check.md @@ -43,6 +43,8 @@ network: imports: - shared/reporting.md - shared/otel.md + + - shared/observability-otlp.md --- # Daily AW Cross-Repo Compilation Agent diff --git a/.github/workflows/daily-cache-strategy-analyzer.lock.yml b/.github/workflows/daily-cache-strategy-analyzer.lock.yml index ccbd61a1aca..f7b15bd2e50 100644 --- a/.github/workflows/daily-cache-strategy-analyzer.lock.yml +++ b/.github/workflows/daily-cache-strategy-analyzer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7735bd58acc64d4b6829a234fa1a98c05d50db458582fb63e2c8c6b328355261","strict":true,"agent_id":"codex"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"02551727c14a85a43237076a2916339ed0cdddc0d0f58a8c566c651d6f2d6e5a","strict":true,"agent_id":"codex"} # gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -207,22 +207,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_bb60cbaf7bb68009_EOF' + cat << 'GH_AW_PROMPT_3a1d46ac9823e316_EOF' - GH_AW_PROMPT_bb60cbaf7bb68009_EOF + GH_AW_PROMPT_3a1d46ac9823e316_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_bb60cbaf7bb68009_EOF' + cat << 'GH_AW_PROMPT_3a1d46ac9823e316_EOF' Tools: create_issue(max:5), create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_bb60cbaf7bb68009_EOF + GH_AW_PROMPT_3a1d46ac9823e316_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_bb60cbaf7bb68009_EOF' + cat << 'GH_AW_PROMPT_3a1d46ac9823e316_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -251,9 +251,9 @@ jobs: {{/if}} - GH_AW_PROMPT_bb60cbaf7bb68009_EOF + GH_AW_PROMPT_3a1d46ac9823e316_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_bb60cbaf7bb68009_EOF' + cat << 'GH_AW_PROMPT_3a1d46ac9823e316_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. @@ -264,7 +264,7 @@ jobs: {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-cache-strategy-analyzer.md}} - GH_AW_PROMPT_bb60cbaf7bb68009_EOF + GH_AW_PROMPT_3a1d46ac9823e316_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -557,9 +557,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_cba09f4e215140bd_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d397055f09c16002_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[cache-strategy] "},"create_issue":{"expires":168,"group":true,"labels":["automation","improvement"],"max":5,"title_prefix":"[cache-strategy] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_cba09f4e215140bd_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d397055f09c16002_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -788,7 +788,7 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_f943f5cfaf9138d4_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_f1774e41382712b3_EOF [history] persistence = "none" @@ -817,11 +817,11 @@ jobs: [mcp_servers.safeoutputs."guard-policies".write-sink] accept = ["*"] - GH_AW_MCP_CONFIG_f943f5cfaf9138d4_EOF + GH_AW_MCP_CONFIG_f1774e41382712b3_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f943f5cfaf9138d4_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_f1774e41382712b3_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -870,11 +870,11 @@ jobs: } } } - GH_AW_MCP_CONFIG_f943f5cfaf9138d4_EOF + GH_AW_MCP_CONFIG_f1774e41382712b3_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_2640addcf9dd5dbe_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_0096ffea21d71614_EOF model_provider = "openai-proxy" @@ -886,7 +886,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "GH_AW_ASSETS_ALLOWED_EXTS", "GH_AW_ASSETS_BRANCH", "GH_AW_ASSETS_MAX_SIZE_KB", "GH_AW_SAFE_OUTPUTS", "GITHUB_REPOSITORY", "GITHUB_SERVER_URL", "GITHUB_TOKEN", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_2640addcf9dd5dbe_EOF + GH_AW_CODEX_SHELL_POLICY_0096ffea21d71614_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1432,18 +1432,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_064564c6343901d3_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_32dabedd72663b43_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_064564c6343901d3_EOF + GH_AW_MCP_CONFIG_32dabedd72663b43_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_29baf567a663cbb4_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c449ad4347f97c5d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1454,11 +1454,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_29baf567a663cbb4_EOF + GH_AW_MCP_CONFIG_c449ad4347f97c5d_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_44a94b5204e38d49_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_dc42fa9ef6ebd3a8_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1468,7 +1468,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_44a94b5204e38d49_EOF + GH_AW_CODEX_SHELL_POLICY_dc42fa9ef6ebd3a8_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-cache-strategy-analyzer.md b/.github/workflows/daily-cache-strategy-analyzer.md index dcf3444e520..f2f299cad2d 100644 --- a/.github/workflows/daily-cache-strategy-analyzer.md +++ b/.github/workflows/daily-cache-strategy-analyzer.md @@ -36,6 +36,8 @@ imports: - shared/reporting.md - shared/noop-reminder.md - shared/otel.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-caveman-optimizer.lock.yml b/.github/workflows/daily-caveman-optimizer.lock.yml index d200bc34b75..48c60551e44 100644 --- a/.github/workflows/daily-caveman-optimizer.lock.yml +++ b/.github/workflows/daily-caveman-optimizer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0a341c0074fff21d2ae176d9b951b60cbdb5d4de87f416cba588963e5452f093","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4b9bef30b10151dd27b822de61bf33947cf1e1e39b807d027964f439f777b993","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -199,24 +199,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_85fe7fb29a0c2499_EOF' + cat << 'GH_AW_PROMPT_903ac6267ae549f3_EOF' - GH_AW_PROMPT_85fe7fb29a0c2499_EOF + GH_AW_PROMPT_903ac6267ae549f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_85fe7fb29a0c2499_EOF' + cat << 'GH_AW_PROMPT_903ac6267ae549f3_EOF' Tools: create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_85fe7fb29a0c2499_EOF + GH_AW_PROMPT_903ac6267ae549f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_85fe7fb29a0c2499_EOF' + cat << 'GH_AW_PROMPT_903ac6267ae549f3_EOF' - GH_AW_PROMPT_85fe7fb29a0c2499_EOF + GH_AW_PROMPT_903ac6267ae549f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_85fe7fb29a0c2499_EOF' + cat << 'GH_AW_PROMPT_903ac6267ae549f3_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -245,15 +245,15 @@ jobs: {{/if}} - GH_AW_PROMPT_85fe7fb29a0c2499_EOF + GH_AW_PROMPT_903ac6267ae549f3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_85fe7fb29a0c2499_EOF' + cat << 'GH_AW_PROMPT_903ac6267ae549f3_EOF' {{#runtime-import .github/workflows/shared/otel.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-caveman-optimizer.md}} - GH_AW_PROMPT_85fe7fb29a0c2499_EOF + GH_AW_PROMPT_903ac6267ae549f3_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -481,9 +481,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_98fe507b76578f38_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_cde2125bd54d50c2_EOF' {"create_pull_request":{"allowed_files":[".github/aw/**",".github/agents/**"],"draft":false,"expires":72,"labels":["documentation","automation","prompt-quality"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","CLAUDE.md","AGENTS.md"],"protected_files_policy":"allowed","title_prefix":"[caveman] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_98fe507b76578f38_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_cde2125bd54d50c2_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -689,7 +689,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b91a8d48c7f73f6f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_943546a1c6c109b7_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -720,7 +720,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_b91a8d48c7f73f6f_EOF + GH_AW_MCP_CONFIG_943546a1c6c109b7_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-caveman-optimizer.md b/.github/workflows/daily-caveman-optimizer.md index ea2d55473ef..8a7b2a36db5 100644 --- a/.github/workflows/daily-caveman-optimizer.md +++ b/.github/workflows/daily-caveman-optimizer.md @@ -46,6 +46,8 @@ timeout-minutes: 30 imports: - shared/otel.md + + - shared/observability-otlp.md --- # Daily Caveman Optimizer 🪨 diff --git a/.github/workflows/daily-cli-performance.lock.yml b/.github/workflows/daily-cli-performance.lock.yml index ed064f3dece..cca1796a969 100644 --- a/.github/workflows/daily-cli-performance.lock.yml +++ b/.github/workflows/daily-cli-performance.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"47b9f9bf48bfbd180119537d0e11ac61e3750c1790e68b6a6fe738321a06c6e6","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cf287e77dcafdaf5f04b90dae2bc088e4bab6d379d46d939ce5520a6b3abb52d","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -222,21 +222,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_ed971e4a02838768_EOF' + cat << 'GH_AW_PROMPT_a46140799e87e2fd_EOF' - GH_AW_PROMPT_ed971e4a02838768_EOF + GH_AW_PROMPT_a46140799e87e2fd_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_ed971e4a02838768_EOF' + cat << 'GH_AW_PROMPT_a46140799e87e2fd_EOF' Tools: add_comment(max:5), create_issue(max:3), create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_ed971e4a02838768_EOF + GH_AW_PROMPT_a46140799e87e2fd_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_ed971e4a02838768_EOF' + cat << 'GH_AW_PROMPT_a46140799e87e2fd_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -265,16 +265,16 @@ jobs: {{/if}} - GH_AW_PROMPT_ed971e4a02838768_EOF + GH_AW_PROMPT_a46140799e87e2fd_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_ed971e4a02838768_EOF' + cat << 'GH_AW_PROMPT_a46140799e87e2fd_EOF' {{#runtime-import .github/workflows/shared/go-make.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-cli-performance.md}} - GH_AW_PROMPT_ed971e4a02838768_EOF + GH_AW_PROMPT_a46140799e87e2fd_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -512,9 +512,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a46ce5be41e47e7a_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_20797eb3d1c65f29_EOF' {"add_comment":{"max":5},"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily-cli-performance] "},"create_issue":{"expires":48,"group":true,"labels":["performance","automation","cookie"],"max":3,"title_prefix":"[performance] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":131072,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_a46ce5be41e47e7a_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_20797eb3d1c65f29_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -737,7 +737,7 @@ jobs: - name: Write MCP Scripts Config run: | mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_04602c31dd685587_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_88f83e2ca8937b61_EOF' { "serverName": "mcpscripts", "version": "1.0.0", @@ -781,8 +781,8 @@ jobs: } ] } - GH_AW_MCP_SCRIPTS_TOOLS_04602c31dd685587_EOF - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_50b1dd255bd46a7d_EOF' + GH_AW_MCP_SCRIPTS_TOOLS_88f83e2ca8937b61_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_328452ee106502be_EOF' const path = require("path"); const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs"); const configPath = path.join(__dirname, "tools.json"); @@ -796,12 +796,12 @@ jobs: console.error("Failed to start mcp-scripts HTTP server:", error); process.exit(1); }); - GH_AW_MCP_SCRIPTS_SERVER_50b1dd255bd46a7d_EOF + GH_AW_MCP_SCRIPTS_SERVER_328452ee106502be_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" - name: Write MCP Scripts Tool Files run: | - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/go.sh" << 'GH_AW_MCP_SCRIPTS_SH_GO_5c56a473c4e50746_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/go.sh" << 'GH_AW_MCP_SCRIPTS_SH_GO_d116b9648216f091_EOF' #!/bin/bash # Auto-generated mcp-script tool: go # Execute any Go command. This tool is accessible as 'mcpscripts-go'. Provide the full command after 'go' (e.g., args: 'test ./...'). The tool will run: go . Use single quotes ' for complex args to avoid shell interpretation issues. @@ -812,9 +812,9 @@ jobs: go $INPUT_ARGS - GH_AW_MCP_SCRIPTS_SH_GO_5c56a473c4e50746_EOF + GH_AW_MCP_SCRIPTS_SH_GO_d116b9648216f091_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/go.sh" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/make.sh" << 'GH_AW_MCP_SCRIPTS_SH_MAKE_9a847c08b409e893_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/make.sh" << 'GH_AW_MCP_SCRIPTS_SH_MAKE_1b38f8df5474c495_EOF' #!/bin/bash # Auto-generated mcp-script tool: make # Execute any Make target. This tool is accessible as 'mcpscripts-make'. Provide the target name(s) (e.g., args: 'build'). The tool will run: make . Use single quotes ' for complex args to avoid shell interpretation issues. @@ -825,7 +825,7 @@ jobs: make $INPUT_ARGS - GH_AW_MCP_SCRIPTS_SH_MAKE_9a847c08b409e893_EOF + GH_AW_MCP_SCRIPTS_SH_MAKE_1b38f8df5474c495_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/make.sh" - name: Generate MCP Scripts Server Config @@ -894,7 +894,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_e52fa487e9e0236f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_246a34c214ed5380_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "mcpscripts": { @@ -939,7 +939,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_e52fa487e9e0236f_EOF + GH_AW_MCP_CONFIG_246a34c214ed5380_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-cli-performance.md b/.github/workflows/daily-cli-performance.md index 99aa2fcb43e..1515532a85b 100644 --- a/.github/workflows/daily-cli-performance.md +++ b/.github/workflows/daily-cli-performance.md @@ -61,6 +61,7 @@ imports: title-prefix: "[daily-cli-performance] " expires: 3d - shared/go-make.md + - shared/observability-otlp.md features: copilot-requests: true if: needs.pre_activation.outputs.has_changes == 'true' || github.event_name == 'workflow_dispatch' @@ -68,6 +69,7 @@ jobs: pre-activation: outputs: has_changes: ${{ steps.changes.outputs.has_changes }} + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-cli-tools-tester.lock.yml b/.github/workflows/daily-cli-tools-tester.lock.yml index add9ac377cb..7b338a8bb27 100644 --- a/.github/workflows/daily-cli-tools-tester.lock.yml +++ b/.github/workflows/daily-cli-tools-tester.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d8946ad38647f75543264b70bf628d0bb03d72b1201ec5bc8c2901728f283267","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"be8fa79cdc1fe02028d6731d840c1a3283da4630d94ac37f8c29a82ca72722f6","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -200,21 +200,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_7845b77019682aa9_EOF' + cat << 'GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF' - GH_AW_PROMPT_7845b77019682aa9_EOF + GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_7845b77019682aa9_EOF' + cat << 'GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_7845b77019682aa9_EOF + GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_7845b77019682aa9_EOF' + cat << 'GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -243,14 +243,14 @@ jobs: {{/if}} - GH_AW_PROMPT_7845b77019682aa9_EOF + GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_7845b77019682aa9_EOF' + cat << 'GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-cli-tools-tester.md}} - GH_AW_PROMPT_7845b77019682aa9_EOF + GH_AW_PROMPT_3de1fa2e8b1bc5b9_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -519,9 +519,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_eb513d8618813b99_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f49bb2ecf92eaf89_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[cli-tools-test] "},"create_issue":{"expires":168,"labels":["testing","automation","cli-tools"],"max":1,"title_prefix":"[cli-tools-test] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_eb513d8618813b99_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_f49bb2ecf92eaf89_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -754,7 +754,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f5e23a298bf80fb0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_520e2218694ae58a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -820,7 +820,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_f5e23a298bf80fb0_EOF + GH_AW_MCP_CONFIG_520e2218694ae58a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-cli-tools-tester.md b/.github/workflows/daily-cli-tools-tester.md index 139cef73a17..7cdda57f4aa 100644 --- a/.github/workflows/daily-cli-tools-tester.md +++ b/.github/workflows/daily-cli-tools-tester.md @@ -27,6 +27,8 @@ imports: with: title-prefix: "[cli-tools-test] " expires: 3d + + - shared/observability-otlp.md --- # Daily CLI Tools Exploratory Tester diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 683ea192a07..f4033b4df9d 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"421a96409424cc25f20442d1718d6b9d46b552105c126f694c16a3560dec6f97","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c3374ca20ea3fde76abc375fe37a3aa4686bdada72f47804be8ed6f4f80239b0","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -203,24 +203,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_e45ff8a78a8305e1_EOF' + cat << 'GH_AW_PROMPT_600e581c31eeae2d_EOF' - GH_AW_PROMPT_e45ff8a78a8305e1_EOF + GH_AW_PROMPT_600e581c31eeae2d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_e45ff8a78a8305e1_EOF' + cat << 'GH_AW_PROMPT_600e581c31eeae2d_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_e45ff8a78a8305e1_EOF + GH_AW_PROMPT_600e581c31eeae2d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_e45ff8a78a8305e1_EOF' + cat << 'GH_AW_PROMPT_600e581c31eeae2d_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -249,17 +249,17 @@ jobs: {{/if}} - GH_AW_PROMPT_e45ff8a78a8305e1_EOF + GH_AW_PROMPT_600e581c31eeae2d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_e45ff8a78a8305e1_EOF' + cat << 'GH_AW_PROMPT_600e581c31eeae2d_EOF' {{#runtime-import .github/workflows/shared/python-dataviz.md}} {{#runtime-import .github/workflows/shared/trends.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-code-metrics.md}} - GH_AW_PROMPT_e45ff8a78a8305e1_EOF + GH_AW_PROMPT_600e581c31eeae2d_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -530,9 +530,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_bd58bf32128d389b_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_38d9ad7535918fed_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily-code-metrics] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":51200}]},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_bd58bf32128d389b_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_38d9ad7535918fed_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -739,7 +739,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_13d1c8b56b6f0aba_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_95a19dc917a2f8ee_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -785,7 +785,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_13d1c8b56b6f0aba_EOF + GH_AW_MCP_CONFIG_95a19dc917a2f8ee_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-code-metrics.md b/.github/workflows/daily-code-metrics.md index 6b783cd336a..1608f2543db 100644 --- a/.github/workflows/daily-code-metrics.md +++ b/.github/workflows/daily-code-metrics.md @@ -27,6 +27,8 @@ imports: - shared/python-dataviz.md - shared/trends.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-compiler-quality.lock.yml b/.github/workflows/daily-compiler-quality.lock.yml index 0ad04e78291..bb6a72ea2bd 100644 --- a/.github/workflows/daily-compiler-quality.lock.yml +++ b/.github/workflows/daily-compiler-quality.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"431d1b93ace3a0cc6eb057a024b6d6cae88af68f1d573de6f5f5d5015d1bf4fc","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7bc1a19e4a2af352c977f50c373f15abb29d5c9c10f502ba5972784b4aa91318","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -197,21 +197,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF' + cat << 'GH_AW_PROMPT_f8c19ab5cd1cee06_EOF' - GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF + GH_AW_PROMPT_f8c19ab5cd1cee06_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF' + cat << 'GH_AW_PROMPT_f8c19ab5cd1cee06_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF + GH_AW_PROMPT_f8c19ab5cd1cee06_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF' + cat << 'GH_AW_PROMPT_f8c19ab5cd1cee06_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -240,9 +240,9 @@ jobs: {{/if}} - GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF + GH_AW_PROMPT_f8c19ab5cd1cee06_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF' + cat << 'GH_AW_PROMPT_f8c19ab5cd1cee06_EOF' ## Serena Code Analysis @@ -276,12 +276,12 @@ jobs: {{#runtime-import .github/workflows/shared/go-source-analysis.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/mcp/serena-go.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-compiler-quality.md}} - GH_AW_PROMPT_c7a0b4d2f7dfb2c4_EOF + GH_AW_PROMPT_f8c19ab5cd1cee06_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -514,9 +514,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_32962226748d717d_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f4b4b62b017a06f7_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[daily-compiler-quality] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_32962226748d717d_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_f4b4b62b017a06f7_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -708,7 +708,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_3f1975554975d96f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ab9d2d1b2af2d4cc_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -768,7 +768,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_3f1975554975d96f_EOF + GH_AW_MCP_CONFIG_ab9d2d1b2af2d4cc_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-compiler-quality.md b/.github/workflows/daily-compiler-quality.md index b2dbf40c836..a59dff32192 100644 --- a/.github/workflows/daily-compiler-quality.md +++ b/.github/workflows/daily-compiler-quality.md @@ -17,6 +17,7 @@ imports: title-prefix: "[daily-compiler-quality] " expires: 1d - shared/go-source-analysis.md + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -42,6 +43,7 @@ timeout-minutes: 30 strict: true features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml index 856a0283be9..65f44cf7e02 100644 --- a/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml +++ b/.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6ea47d6a0091486c4df2518fc616c177e3b7351e3cd9d8bfde1f9fd327ebd8a3","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"09a3bf2e1bc931ca069d2b20a98a5f6434ed499e62bdf6ae0a6ea11e11325fa5","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -199,23 +199,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_5275161dde03f51c_EOF' + cat << 'GH_AW_PROMPT_e3e9535d08e76613_EOF' - GH_AW_PROMPT_5275161dde03f51c_EOF + GH_AW_PROMPT_e3e9535d08e76613_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_5275161dde03f51c_EOF' + cat << 'GH_AW_PROMPT_e3e9535d08e76613_EOF' Tools: create_discussion, create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_5275161dde03f51c_EOF + GH_AW_PROMPT_e3e9535d08e76613_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_5275161dde03f51c_EOF' + cat << 'GH_AW_PROMPT_e3e9535d08e76613_EOF' - GH_AW_PROMPT_5275161dde03f51c_EOF + GH_AW_PROMPT_e3e9535d08e76613_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_5275161dde03f51c_EOF' + cat << 'GH_AW_PROMPT_e3e9535d08e76613_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -244,15 +244,15 @@ jobs: {{/if}} - GH_AW_PROMPT_5275161dde03f51c_EOF + GH_AW_PROMPT_e3e9535d08e76613_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_5275161dde03f51c_EOF' + cat << 'GH_AW_PROMPT_e3e9535d08e76613_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-compiler-threat-spec-optimizer.md}} - GH_AW_PROMPT_5275161dde03f51c_EOF + GH_AW_PROMPT_e3e9535d08e76613_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -461,9 +461,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_77bbd67d6b00f045_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ded3e73bd7e0a159_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[compiler-threat-spec] "},"create_pull_request":{"draft":false,"expires":168,"labels":["security","compiler","specification","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"title_prefix":"[compiler-threat-spec] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_77bbd67d6b00f045_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_ded3e73bd7e0a159_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -697,7 +697,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_80f382e3584cba44_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_312154ae771820aa_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -728,7 +728,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_80f382e3584cba44_EOF + GH_AW_MCP_CONFIG_312154ae771820aa_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-compiler-threat-spec-optimizer.md b/.github/workflows/daily-compiler-threat-spec-optimizer.md index 6ba3379d78a..66116466585 100644 --- a/.github/workflows/daily-compiler-threat-spec-optimizer.md +++ b/.github/workflows/daily-compiler-threat-spec-optimizer.md @@ -21,6 +21,7 @@ imports: title-prefix: "[compiler-threat-spec] " expires: 3d + - shared/observability-otlp.md safe-outputs: create-pull-request: title-prefix: "[compiler-threat-spec] " @@ -43,6 +44,7 @@ tools: - "go test -v ./pkg/workflow/..." timeout-minutes: 30 + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-doc-healer.lock.yml b/.github/workflows/daily-doc-healer.lock.yml index 4fecab5a4e7..b26eba275aa 100644 --- a/.github/workflows/daily-doc-healer.lock.yml +++ b/.github/workflows/daily-doc-healer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"165987363bef3eb402a7f0e930d15f1e587f554b3fec79d3cb60b1b69f1a5c8f","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cd225de15ebd9f0be63188cb2ffae0df6641bf9e0e4d2bdc3d9c345d7bab8796","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_AGENT_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -202,24 +202,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_9ba1537dcbd0a408_EOF' + cat << 'GH_AW_PROMPT_79508ccabed2bbed_EOF' - GH_AW_PROMPT_9ba1537dcbd0a408_EOF + GH_AW_PROMPT_79508ccabed2bbed_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_9ba1537dcbd0a408_EOF' + cat << 'GH_AW_PROMPT_79508ccabed2bbed_EOF' Tools: create_issue, create_discussion, create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_9ba1537dcbd0a408_EOF + GH_AW_PROMPT_79508ccabed2bbed_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_9ba1537dcbd0a408_EOF' + cat << 'GH_AW_PROMPT_79508ccabed2bbed_EOF' - GH_AW_PROMPT_9ba1537dcbd0a408_EOF + GH_AW_PROMPT_79508ccabed2bbed_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_9ba1537dcbd0a408_EOF' + cat << 'GH_AW_PROMPT_79508ccabed2bbed_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -248,14 +248,14 @@ jobs: {{/if}} - GH_AW_PROMPT_9ba1537dcbd0a408_EOF + GH_AW_PROMPT_79508ccabed2bbed_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_9ba1537dcbd0a408_EOF' + cat << 'GH_AW_PROMPT_79508ccabed2bbed_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-doc-healer.md}} - GH_AW_PROMPT_9ba1537dcbd0a408_EOF + GH_AW_PROMPT_79508ccabed2bbed_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -484,9 +484,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_117358f14099d177_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d1f76beca797a7e3_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[doc-healer] "},"create_issue":{"assignees":["copilot"],"expires":72,"labels":["documentation","automation"],"max":1,"title_prefix":"[doc-healer] "},"create_pull_request":{"expires":72,"labels":["documentation","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","CLAUDE.md","AGENTS.md"],"title_prefix":"[docs] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_117358f14099d177_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d1f76beca797a7e3_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -756,7 +756,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_8fa150d1f535467f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_454d8dde32d56c2d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -787,7 +787,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_8fa150d1f535467f_EOF + GH_AW_MCP_CONFIG_454d8dde32d56c2d_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-doc-healer.md b/.github/workflows/daily-doc-healer.md index 539f4bcd2fe..94c9d1769a1 100644 --- a/.github/workflows/daily-doc-healer.md +++ b/.github/workflows/daily-doc-healer.md @@ -56,6 +56,8 @@ imports: title-prefix: "[doc-healer] " expires: 3d + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-experiment-report.lock.yml b/.github/workflows/daily-experiment-report.lock.yml index 0bc292587a4..88cf3f0111d 100644 --- a/.github/workflows/daily-experiment-report.lock.yml +++ b/.github/workflows/daily-experiment-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0f6749cfd7fe53f0a179f26e17c889d23bfd348ba6e75beeba1a55006bb5cc29","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5e1ded85892460bca1a3f194a6fae59a81d229b2a87a8c85565f90052d0aa6ac","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -195,23 +195,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_0e5965a8d953ac04_EOF' + cat << 'GH_AW_PROMPT_64a0d37167f9e714_EOF' - GH_AW_PROMPT_0e5965a8d953ac04_EOF + GH_AW_PROMPT_64a0d37167f9e714_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_0e5965a8d953ac04_EOF' + cat << 'GH_AW_PROMPT_64a0d37167f9e714_EOF' Tools: add_comment(max:10), create_discussion, add_labels(max:10), upload_asset(max:10), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_0e5965a8d953ac04_EOF + GH_AW_PROMPT_64a0d37167f9e714_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_0e5965a8d953ac04_EOF' + cat << 'GH_AW_PROMPT_64a0d37167f9e714_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -240,15 +240,15 @@ jobs: {{/if}} - GH_AW_PROMPT_0e5965a8d953ac04_EOF + GH_AW_PROMPT_64a0d37167f9e714_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_0e5965a8d953ac04_EOF' + cat << 'GH_AW_PROMPT_64a0d37167f9e714_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/trending-charts-simple.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/daily-experiment-report.md}} - GH_AW_PROMPT_0e5965a8d953ac04_EOF + GH_AW_PROMPT_64a0d37167f9e714_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -501,9 +501,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_6e2a474e60f4ad2e_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_15ec8bed6b49ceda_EOF {"add_comment":{"max":10},"add_labels":{"max":10},"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[experiments] "},"create_report_incomplete_issue":{},"max_bot_mentions":1,"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":10,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_6e2a474e60f4ad2e_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_15ec8bed6b49ceda_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -754,7 +754,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_2fd1daa5a210956f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_f36e2de3a277ae58_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -801,7 +801,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_2fd1daa5a210956f_EOF + GH_AW_MCP_CONFIG_f36e2de3a277ae58_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-experiment-report.md b/.github/workflows/daily-experiment-report.md index 7350c48ac74..1c37705bf1b 100644 --- a/.github/workflows/daily-experiment-report.md +++ b/.github/workflows/daily-experiment-report.md @@ -23,6 +23,7 @@ imports: title-prefix: "[experiments] " expires: 3d + - shared/observability-otlp.md safe-outputs: upload-asset: max: 10 @@ -39,6 +40,7 @@ timeout-minutes: 30 features: copilot-requests: true + --- # Daily Experiment Report diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 18f4731f7e2..00ee99bdbc6 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -1437,18 +1437,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_6853ff0b13364b25_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_5d28eb3912dd2d50_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_6853ff0b13364b25_EOF + GH_AW_MCP_CONFIG_5d28eb3912dd2d50_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ce7d2eb37e755cec_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_6518eed655bd734f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1459,11 +1459,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_ce7d2eb37e755cec_EOF + GH_AW_MCP_CONFIG_6518eed655bd734f_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_df21b9df5f7e3cea_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_5ce0d08e0c625ba3_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1473,7 +1473,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_df21b9df5f7e3cea_EOF + GH_AW_CODEX_SHELL_POLICY_5ce0d08e0c625ba3_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 643bf325f4f..5591821be28 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4e3bb608c02338d05b3bc3a48474524333012715c190e5ab36333a06f1b760e5","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1e1d301cc1d710d8944fd9d4477f2f13be0586b5ff255482e9ac69d7c1daafc4","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -205,24 +205,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_ae86eed4662e41ac_EOF' + cat << 'GH_AW_PROMPT_c5cfd27da790f809_EOF' - GH_AW_PROMPT_ae86eed4662e41ac_EOF + GH_AW_PROMPT_c5cfd27da790f809_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_ae86eed4662e41ac_EOF' + cat << 'GH_AW_PROMPT_c5cfd27da790f809_EOF' Tools: create_discussion, upload_asset(max:3), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_ae86eed4662e41ac_EOF + GH_AW_PROMPT_c5cfd27da790f809_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_ae86eed4662e41ac_EOF' + cat << 'GH_AW_PROMPT_c5cfd27da790f809_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -251,16 +251,16 @@ jobs: {{/if}} - GH_AW_PROMPT_ae86eed4662e41ac_EOF + GH_AW_PROMPT_c5cfd27da790f809_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_ae86eed4662e41ac_EOF' + cat << 'GH_AW_PROMPT_c5cfd27da790f809_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/trending-charts-simple.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-firewall-report.md}} - GH_AW_PROMPT_ae86eed4662e41ac_EOF + GH_AW_PROMPT_c5cfd27da790f809_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -569,9 +569,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_ef402eb5950aac87_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_8b63c5eb77cc6d79_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily-firewall-report] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":3,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_ef402eb5950aac87_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_8b63c5eb77cc6d79_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -780,7 +780,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_442e323cb37a102f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_98bfd643d0cec702_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -846,7 +846,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_442e323cb37a102f_EOF + GH_AW_MCP_CONFIG_98bfd643d0cec702_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-firewall-report.md b/.github/workflows/daily-firewall-report.md index 348b0e44d7a..a261e291610 100644 --- a/.github/workflows/daily-firewall-report.md +++ b/.github/workflows/daily-firewall-report.md @@ -37,6 +37,8 @@ imports: with: title-prefix: "[daily-firewall-report] " + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-function-namer.lock.yml b/.github/workflows/daily-function-namer.lock.yml index 854f747b63c..447ca18d16d 100644 --- a/.github/workflows/daily-function-namer.lock.yml +++ b/.github/workflows/daily-function-namer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"6518571ac55954cc4dd9b5487832cd986617a9b7082d641b9c48ee3cdadfc00f","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0fd5c1e7f759251375d1d6415bff395a161234f96e98d13833b9de6e3b7d3088","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -203,21 +203,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_26e34996ca32bedd_EOF' + cat << 'GH_AW_PROMPT_bcbabf52f21f884f_EOF' - GH_AW_PROMPT_26e34996ca32bedd_EOF + GH_AW_PROMPT_bcbabf52f21f884f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_26e34996ca32bedd_EOF' + cat << 'GH_AW_PROMPT_bcbabf52f21f884f_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_26e34996ca32bedd_EOF + GH_AW_PROMPT_bcbabf52f21f884f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_26e34996ca32bedd_EOF' + cat << 'GH_AW_PROMPT_bcbabf52f21f884f_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -246,9 +246,9 @@ jobs: {{/if}} - GH_AW_PROMPT_26e34996ca32bedd_EOF + GH_AW_PROMPT_bcbabf52f21f884f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_26e34996ca32bedd_EOF' + cat << 'GH_AW_PROMPT_bcbabf52f21f884f_EOF' ## Serena Code Analysis @@ -282,10 +282,10 @@ jobs: {{#runtime-import .github/workflows/shared/mcp/serena-go.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-function-namer.md}} - GH_AW_PROMPT_26e34996ca32bedd_EOF + GH_AW_PROMPT_bcbabf52f21f884f_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -516,9 +516,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_9af63197200fbea3_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c49b6b999c2952a1_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[function-namer] "},"create_issue":{"close_older_issues":true,"expires":168,"labels":["refactoring","code-quality","automated-analysis","cookie"],"max":1,"title_prefix":"[function-namer] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_9af63197200fbea3_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_c49b6b999c2952a1_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -746,7 +746,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_30ba98d8e112a8eb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_b70590e242413bd8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -803,7 +803,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_30ba98d8e112a8eb_EOF + GH_AW_MCP_CONFIG_b70590e242413bd8_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-function-namer.md b/.github/workflows/daily-function-namer.md index c77c128c182..8928cbcfaf2 100644 --- a/.github/workflows/daily-function-namer.md +++ b/.github/workflows/daily-function-namer.md @@ -21,6 +21,7 @@ imports: expires: 3d - shared/mcp/serena-go.md + - shared/observability-otlp.md safe-outputs: create-issue: expires: 7d @@ -39,6 +40,7 @@ tools: timeout-minutes: 30 strict: true + --- # Daily Go Function Namer diff --git a/.github/workflows/daily-geo-optimizer.lock.yml b/.github/workflows/daily-geo-optimizer.lock.yml index e282d5607e9..b4e16f9818c 100644 --- a/.github/workflows/daily-geo-optimizer.lock.yml +++ b/.github/workflows/daily-geo-optimizer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"138fc20b466663725030b55cee9023bff26aacf17edb99ece01ecf3f8cf79ca6","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"51eb9a0a19a0b5b074ef3ca5346907b8bb7a0371f7cb30576b80d75ffd423d14","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"34e114876b0b11c390a56381ad16ebd13914f8d5","version":"v4"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a26af69be951a213d495a4c3e4e4022e16d87065","version":"v5"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -194,20 +194,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_fe6745b05e99d98c_EOF' + cat << 'GH_AW_PROMPT_a8ec6b1413ab046c_EOF' - GH_AW_PROMPT_fe6745b05e99d98c_EOF + GH_AW_PROMPT_a8ec6b1413ab046c_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_fe6745b05e99d98c_EOF' + cat << 'GH_AW_PROMPT_a8ec6b1413ab046c_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_fe6745b05e99d98c_EOF + GH_AW_PROMPT_a8ec6b1413ab046c_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_fe6745b05e99d98c_EOF' + cat << 'GH_AW_PROMPT_a8ec6b1413ab046c_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -236,15 +236,15 @@ jobs: {{/if}} - GH_AW_PROMPT_fe6745b05e99d98c_EOF + GH_AW_PROMPT_a8ec6b1413ab046c_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_fe6745b05e99d98c_EOF' + cat << 'GH_AW_PROMPT_a8ec6b1413ab046c_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-geo-optimizer.md}} - GH_AW_PROMPT_fe6745b05e99d98c_EOF + GH_AW_PROMPT_a8ec6b1413ab046c_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -468,9 +468,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_000752efe87ef62c_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_49eac05b1923ea4c_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[geo-optimizer] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_000752efe87ef62c_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_49eac05b1923ea4c_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -662,7 +662,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ab11c897d54048df_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_20cfad5a04aa256c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -693,7 +693,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_ab11c897d54048df_EOF + GH_AW_MCP_CONFIG_20cfad5a04aa256c_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-geo-optimizer.md b/.github/workflows/daily-geo-optimizer.md index d58f951ab27..8e4d487bd53 100644 --- a/.github/workflows/daily-geo-optimizer.md +++ b/.github/workflows/daily-geo-optimizer.md @@ -102,6 +102,8 @@ imports: with: title-prefix: "[geo-optimizer] " expires: 3d + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml index 6a5c807db0b..d776b8e3d2e 100644 --- a/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b648007715aade2e1cb3ebdba89093f99a3aff5baa75898e79f1fc725b9d20f9","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"16aaca756cb7115cd6a5b895469ba865f404b2aa60517dd75a1ec7184690ca5b","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","GRAFANA_SERVICE_ACCOUNT_TOKEN","GRAFANA_URL"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"grafana/mcp-grafana","digest":"sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090","pinned_image":"grafana/mcp-grafana@sha256:60a4e3a417a69eeb864a72052c53b4aa4466ff3577d6ef9bacc671f4b77d7090"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -202,20 +202,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_5040d140ce9133c4_EOF' + cat << 'GH_AW_PROMPT_e4af1ba7c073141a_EOF' - GH_AW_PROMPT_5040d140ce9133c4_EOF + GH_AW_PROMPT_e4af1ba7c073141a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_5040d140ce9133c4_EOF' + cat << 'GH_AW_PROMPT_e4af1ba7c073141a_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_5040d140ce9133c4_EOF + GH_AW_PROMPT_e4af1ba7c073141a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_5040d140ce9133c4_EOF' + cat << 'GH_AW_PROMPT_e4af1ba7c073141a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -244,14 +244,14 @@ jobs: {{/if}} - GH_AW_PROMPT_5040d140ce9133c4_EOF + GH_AW_PROMPT_e4af1ba7c073141a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_5040d140ce9133c4_EOF' + cat << 'GH_AW_PROMPT_e4af1ba7c073141a_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-grafana-otel-instrumentation-advisor.md}} - GH_AW_PROMPT_5040d140ce9133c4_EOF + GH_AW_PROMPT_e4af1ba7c073141a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -464,9 +464,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_446d6eb7bb586075_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_f527e753ee36f9f7_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[grafana-otel-advisor] "},"create_issue":{"close_older_issues":true,"expires":168,"labels":["observability","developer-experience","automated-analysis"],"max":1,"title_prefix":"[grafana-otel-advisor] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_446d6eb7bb586075_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_f527e753ee36f9f7_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -696,7 +696,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e GRAFANA_SERVICE_ACCOUNT_TOKEN -e GRAFANA_URL -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_26421bc6a64f9c28_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_9dd7ba9be2a0187d_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "grafana": { @@ -747,7 +747,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_26421bc6a64f9c28_EOF + GH_AW_MCP_CONFIG_9dd7ba9be2a0187d_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-grafana-otel-instrumentation-advisor.md b/.github/workflows/daily-grafana-otel-instrumentation-advisor.md index 5d2e718ece0..4f1e0404fd6 100644 --- a/.github/workflows/daily-grafana-otel-instrumentation-advisor.md +++ b/.github/workflows/daily-grafana-otel-instrumentation-advisor.md @@ -40,6 +40,8 @@ imports: with: title-prefix: "[grafana-otel-advisor] " expires: 3d + + - shared/observability-otlp.md --- # Daily Grafana OTel Instrumentation Advisor diff --git a/.github/workflows/daily-hippo-learn.lock.yml b/.github/workflows/daily-hippo-learn.lock.yml index d90253f9471..16315110000 100644 --- a/.github/workflows/daily-hippo-learn.lock.yml +++ b/.github/workflows/daily-hippo-learn.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"355a8f19782b8e185c7b0be680e584d9bff1fe8fa923cf68da4f213e2801fc39","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"978a15266d748da936615f20afa75fc483fb58d9483167d8d047b8e4687754c2","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -193,21 +193,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_a2c47692aecbca89_EOF' + cat << 'GH_AW_PROMPT_e136e2d0b1c3ff74_EOF' - GH_AW_PROMPT_a2c47692aecbca89_EOF + GH_AW_PROMPT_e136e2d0b1c3ff74_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_a2c47692aecbca89_EOF' + cat << 'GH_AW_PROMPT_e136e2d0b1c3ff74_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_a2c47692aecbca89_EOF + GH_AW_PROMPT_e136e2d0b1c3ff74_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_a2c47692aecbca89_EOF' + cat << 'GH_AW_PROMPT_e136e2d0b1c3ff74_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -236,16 +236,16 @@ jobs: {{/if}} - GH_AW_PROMPT_a2c47692aecbca89_EOF + GH_AW_PROMPT_e136e2d0b1c3ff74_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_a2c47692aecbca89_EOF' + cat << 'GH_AW_PROMPT_e136e2d0b1c3ff74_EOF' {{#runtime-import .github/workflows/shared/hippo-memory.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/otel.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/daily-hippo-learn.md}} - GH_AW_PROMPT_a2c47692aecbca89_EOF + GH_AW_PROMPT_e136e2d0b1c3ff74_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -489,9 +489,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a91727d1fa0d63c1_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_7c1c9d24c9f2d39c_EOF' {"create_discussion":{"category":"announcements","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"🦛 "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_a91727d1fa0d63c1_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_7c1c9d24c9f2d39c_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -654,7 +654,7 @@ jobs: - name: Write MCP Scripts Config run: | mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_21e4ea348606fe5f_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_4e5f7883a9954e5a_EOF' { "serverName": "mcpscripts", "version": "1.0.0", @@ -680,8 +680,8 @@ jobs: } ] } - GH_AW_MCP_SCRIPTS_TOOLS_21e4ea348606fe5f_EOF - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_33250104d577fe4f_EOF' + GH_AW_MCP_SCRIPTS_TOOLS_4e5f7883a9954e5a_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_80227324b4ea08c7_EOF' const path = require("path"); const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs"); const configPath = path.join(__dirname, "tools.json"); @@ -695,12 +695,12 @@ jobs: console.error("Failed to start mcp-scripts HTTP server:", error); process.exit(1); }); - GH_AW_MCP_SCRIPTS_SERVER_33250104d577fe4f_EOF + GH_AW_MCP_SCRIPTS_SERVER_80227324b4ea08c7_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" - name: Write MCP Scripts Tool Files run: | - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/hippo.sh" << 'GH_AW_MCP_SCRIPTS_SH_HIPPO_5e2d3554957f3a40_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/hippo.sh" << 'GH_AW_MCP_SCRIPTS_SH_HIPPO_0c11e6ae8d24254e_EOF' #!/bin/bash # Auto-generated mcp-script tool: hippo # Execute any hippo-memory CLI command. Accessible as 'mcpscripts-hippo'. Provide arguments after 'hippo'. Examples: args 'learn --git' to extract lessons from git commits, 'sleep' for full consolidation, 'recall "api errors" --budget 2000' to retrieve relevant memories. @@ -711,7 +711,7 @@ jobs: hippo $INPUT_ARGS - GH_AW_MCP_SCRIPTS_SH_HIPPO_5e2d3554957f3a40_EOF + GH_AW_MCP_SCRIPTS_SH_HIPPO_0c11e6ae8d24254e_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/hippo.sh" - name: Generate MCP Scripts Server Config @@ -780,7 +780,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_7a2ad211815d57bb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_a9baf790bd3599ec_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "mcpscripts": { @@ -825,7 +825,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_7a2ad211815d57bb_EOF + GH_AW_MCP_CONFIG_a9baf790bd3599ec_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-hippo-learn.md b/.github/workflows/daily-hippo-learn.md index ca0320982c3..0026fa86f60 100644 --- a/.github/workflows/daily-hippo-learn.md +++ b/.github/workflows/daily-hippo-learn.md @@ -52,8 +52,10 @@ imports: - shared/reporting.md - shared/otel.md + - shared/observability-otlp.md features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 046410f943d..1e24a3c58fe 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"adbcad93e7e87b5675e37ab958f6abc9bda96a3d26e17fcecc311ede87deddff","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1fa97df3113da2734ca63206eddcd53d89509104d4f538ea37a6a75d6dff43a8","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -242,23 +242,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_0e3b4447782cd271_EOF' + cat << 'GH_AW_PROMPT_6e7b51b8c77d15b1_EOF' - GH_AW_PROMPT_0e3b4447782cd271_EOF + GH_AW_PROMPT_6e7b51b8c77d15b1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_0e3b4447782cd271_EOF' + cat << 'GH_AW_PROMPT_6e7b51b8c77d15b1_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_0e3b4447782cd271_EOF + GH_AW_PROMPT_6e7b51b8c77d15b1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_0e3b4447782cd271_EOF' + cat << 'GH_AW_PROMPT_6e7b51b8c77d15b1_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -287,9 +287,9 @@ jobs: {{/if}} - GH_AW_PROMPT_0e3b4447782cd271_EOF + GH_AW_PROMPT_6e7b51b8c77d15b1_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_0e3b4447782cd271_EOF' + cat << 'GH_AW_PROMPT_6e7b51b8c77d15b1_EOF' {{#runtime-import .github/workflows/shared/github-guard-policy.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} @@ -297,12 +297,12 @@ jobs: {{#runtime-import .github/workflows/shared/python-dataviz.md}} {{#runtime-import .github/workflows/shared/python-nlp.md}} {{#runtime-import .github/workflows/shared/trends.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/shared/editorial.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-issues-report.md}} - GH_AW_PROMPT_0e3b4447782cd271_EOF + GH_AW_PROMPT_6e7b51b8c77d15b1_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -737,9 +737,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_872b05d258bc2eed_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_0ece45d3e20b9fb7_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily issues] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_872b05d258bc2eed_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_0ece45d3e20b9fb7_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -944,7 +944,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_8e8871beb4c2549b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5583c72007dd5696_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -975,7 +975,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_8e8871beb4c2549b_EOF + GH_AW_MCP_CONFIG_5583c72007dd5696_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-issues-report.md b/.github/workflows/daily-issues-report.md index 5afd8653e26..ef1a243b4d6 100644 --- a/.github/workflows/daily-issues-report.md +++ b/.github/workflows/daily-issues-report.md @@ -47,6 +47,8 @@ imports: - shared/python-dataviz.md - shared/python-nlp.md - shared/trends.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 6dc079f4b0f..bf73ce177f1 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c4032d1b7f650fa07608e813efcc105383b28d7ee6302941224a074aa88ce1dc","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"171fd47ab72d9bab61bf0d6e90afe39af52b30fa4c7499d164fa1f547a2b0d1a","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/codeql-action/upload-sarif","sha":"68bde559dea0fdcac2102bfdf6230c5f70eb485e","version":"v4.35.4"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -191,20 +191,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_25b1dcbd4862ff19_EOF' + cat << 'GH_AW_PROMPT_7ea83ef05735561b_EOF' - GH_AW_PROMPT_25b1dcbd4862ff19_EOF + GH_AW_PROMPT_7ea83ef05735561b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_25b1dcbd4862ff19_EOF' + cat << 'GH_AW_PROMPT_7ea83ef05735561b_EOF' Tools: create_discussion, create_code_scanning_alert, missing_tool, missing_data, noop - GH_AW_PROMPT_25b1dcbd4862ff19_EOF + GH_AW_PROMPT_7ea83ef05735561b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_25b1dcbd4862ff19_EOF' + cat << 'GH_AW_PROMPT_7ea83ef05735561b_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -233,15 +233,15 @@ jobs: {{/if}} - GH_AW_PROMPT_25b1dcbd4862ff19_EOF + GH_AW_PROMPT_7ea83ef05735561b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_25b1dcbd4862ff19_EOF' + cat << 'GH_AW_PROMPT_7ea83ef05735561b_EOF' {{#runtime-import .github/workflows/shared/security-analysis-base.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-malicious-code-scan.md}} - GH_AW_PROMPT_25b1dcbd4862ff19_EOF + GH_AW_PROMPT_7ea83ef05735561b_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -451,9 +451,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_6a16ce2483b1f872_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_5d34b95331cddd33_EOF' {"create_code_scanning_alert":{"driver":"Malicious Code Scanner"},"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[malicious-code-scan] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_6a16ce2483b1f872_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_5d34b95331cddd33_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -689,7 +689,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_7fc2721554d031ae_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_7d50e9505c92ac9a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -736,7 +736,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_7fc2721554d031ae_EOF + GH_AW_MCP_CONFIG_7d50e9505c92ac9a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-malicious-code-scan.md b/.github/workflows/daily-malicious-code-scan.md index 78c158ad04c..129e0d442f4 100644 --- a/.github/workflows/daily-malicious-code-scan.md +++ b/.github/workflows/daily-malicious-code-scan.md @@ -22,9 +22,11 @@ imports: title-prefix: "[malicious-code-scan] " expires: 3d + - shared/observability-otlp.md tools: cli-proxy: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index 62e416a0c7f..d50d4f9a443 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"07dab451e41d4310dbf8b072bc6965ee17ed36650305608552de6af84be9f044","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9e94c08abd3799f15b29c97980f0d96e857e6c14122059c1d5148d8bf8d091d5","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"ghcr.io/github/serena-mcp-server:latest","digest":"sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5","pinned_image":"ghcr.io/github/serena-mcp-server:latest@sha256:bf343399e3725c45528f531a230f3a04521d4cdef29f9a5af6282ff0d3c393c5"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -197,21 +197,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_a9898b9c9820f96c_EOF' + cat << 'GH_AW_PROMPT_40428056866fb38d_EOF' - GH_AW_PROMPT_a9898b9c9820f96c_EOF + GH_AW_PROMPT_40428056866fb38d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_a9898b9c9820f96c_EOF' + cat << 'GH_AW_PROMPT_40428056866fb38d_EOF' Tools: create_issue(max:5), create_discussion, create_agent_session(max:3), missing_tool, missing_data, noop - GH_AW_PROMPT_a9898b9c9820f96c_EOF + GH_AW_PROMPT_40428056866fb38d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_a9898b9c9820f96c_EOF' + cat << 'GH_AW_PROMPT_40428056866fb38d_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -240,9 +240,9 @@ jobs: {{/if}} - GH_AW_PROMPT_a9898b9c9820f96c_EOF + GH_AW_PROMPT_40428056866fb38d_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_a9898b9c9820f96c_EOF' + cat << 'GH_AW_PROMPT_40428056866fb38d_EOF' ## Serena Code Analysis @@ -276,10 +276,10 @@ jobs: {{#runtime-import .github/workflows/shared/safe-output-app.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-mcp-concurrency-analysis.md}} - GH_AW_PROMPT_a9898b9c9820f96c_EOF + GH_AW_PROMPT_40428056866fb38d_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -511,9 +511,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d0b53fc17143a402_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_11a6a003aa3ebeb7_EOF' {"create_agent_session":{"max":3},"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[mcp-concurrency] "},"create_issue":{"expires":168,"labels":["bug","concurrency","thread-safety","automated-analysis","cookie"],"max":5,"title_prefix":"[concurrency] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_d0b53fc17143a402_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_11a6a003aa3ebeb7_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -758,7 +758,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_6783ff677b878521_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_1d4b792bf3a10efd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -818,7 +818,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_6783ff677b878521_EOF + GH_AW_MCP_CONFIG_1d4b792bf3a10efd_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-mcp-concurrency-analysis.md b/.github/workflows/daily-mcp-concurrency-analysis.md index c0e16fd9ea9..d6edee0fff0 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.md +++ b/.github/workflows/daily-mcp-concurrency-analysis.md @@ -24,6 +24,7 @@ imports: with: languages: ["go", "typescript"] + - shared/observability-otlp.md safe-outputs: create-issue: expires: 7d @@ -55,6 +56,7 @@ timeout-minutes: 45 strict: true features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-model-inventory.lock.yml b/.github/workflows/daily-model-inventory.lock.yml index 2a698a0d846..3245a99edda 100644 --- a/.github/workflows/daily-model-inventory.lock.yml +++ b/.github/workflows/daily-model-inventory.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"9e67c109b916d60aad73436244cb58453977994b2fb190e9016e0cbd9221cafd","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"203e7d78f42ce4a75446fc9dd1aa788367dc2c766d4de740f0b88ec1561e5e46","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","COPILOT_GITHUB_TOKEN","GEMINI_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -198,21 +198,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_063d8a7545fcd189_EOF' + cat << 'GH_AW_PROMPT_30fa567a2484c7c7_EOF' - GH_AW_PROMPT_063d8a7545fcd189_EOF + GH_AW_PROMPT_30fa567a2484c7c7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/playwright_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_063d8a7545fcd189_EOF' + cat << 'GH_AW_PROMPT_30fa567a2484c7c7_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_063d8a7545fcd189_EOF + GH_AW_PROMPT_30fa567a2484c7c7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_063d8a7545fcd189_EOF' + cat << 'GH_AW_PROMPT_30fa567a2484c7c7_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -241,15 +241,15 @@ jobs: {{/if}} - GH_AW_PROMPT_063d8a7545fcd189_EOF + GH_AW_PROMPT_30fa567a2484c7c7_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_063d8a7545fcd189_EOF' + cat << 'GH_AW_PROMPT_30fa567a2484c7c7_EOF' {{#runtime-import .github/workflows/shared/otel.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-model-inventory.md}} - GH_AW_PROMPT_063d8a7545fcd189_EOF + GH_AW_PROMPT_30fa567a2484c7c7_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -480,9 +480,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_28a9cabc4da6cc7a_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_fbef23dc486dee90_EOF' {"create_issue":{"close_older_issues":true,"expires":168,"labels":["automation","models"],"max":1,"title_prefix":"[model-inventory] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_28a9cabc4da6cc7a_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_fbef23dc486dee90_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -687,7 +687,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_883aa5ec40a3e752_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ae13290301099cd8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -734,7 +734,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_883aa5ec40a3e752_EOF + GH_AW_MCP_CONFIG_ae13290301099cd8_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-model-inventory.md b/.github/workflows/daily-model-inventory.md index 8e305f3cb69..fae82f027ad 100644 --- a/.github/workflows/daily-model-inventory.md +++ b/.github/workflows/daily-model-inventory.md @@ -377,6 +377,8 @@ safe-outputs: imports: - shared/otel.md + + - shared/observability-otlp.md --- # Daily Model Inventory Checker diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 80913af5cb0..d8fb76cc683 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"af46f7fc7876692e2c3f4c2d69ab6c1576d366d933903af5e7da5a8b1eb1f77c","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5ac1998e6b156ada9a67e515a5fbd0feb5d2f2f348dcbc3dc8e1ce4ed7d34882","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -203,21 +203,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_904e2cc89532dfdf_EOF' + cat << 'GH_AW_PROMPT_c83b12f2ce5699ea_EOF' - GH_AW_PROMPT_904e2cc89532dfdf_EOF + GH_AW_PROMPT_c83b12f2ce5699ea_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/playwright_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_904e2cc89532dfdf_EOF' + cat << 'GH_AW_PROMPT_c83b12f2ce5699ea_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_904e2cc89532dfdf_EOF + GH_AW_PROMPT_c83b12f2ce5699ea_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_904e2cc89532dfdf_EOF' + cat << 'GH_AW_PROMPT_c83b12f2ce5699ea_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -246,15 +246,15 @@ jobs: {{/if}} - GH_AW_PROMPT_904e2cc89532dfdf_EOF + GH_AW_PROMPT_c83b12f2ce5699ea_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_904e2cc89532dfdf_EOF' + cat << 'GH_AW_PROMPT_c83b12f2ce5699ea_EOF' {{#runtime-import .github/workflows/shared/docs-server-lifecycle.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-multi-device-docs-tester.md}} - GH_AW_PROMPT_904e2cc89532dfdf_EOF + GH_AW_PROMPT_c83b12f2ce5699ea_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -478,9 +478,9 @@ jobs: mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs/upload-artifacts" - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_92c308c9f2c79a16_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d67b89bca86d36e5_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[multi-device-docs] "},"create_issue":{"expires":48,"labels":["cookie"],"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_artifact":{"default-if-no-files":"ignore","max-size-bytes":104857600,"max-uploads":3,"retention-days":30,"skip-archive":true}} - GH_AW_SAFE_OUTPUTS_CONFIG_92c308c9f2c79a16_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d67b89bca86d36e5_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -711,7 +711,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_4267c01ecb567eec_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_01b306bb3f819eeb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -757,7 +757,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_4267c01ecb567eec_EOF + GH_AW_MCP_CONFIG_01b306bb3f819eeb_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-multi-device-docs-tester.md b/.github/workflows/daily-multi-device-docs-tester.md index e8dfd1435fa..3c4a193a943 100644 --- a/.github/workflows/daily-multi-device-docs-tester.md +++ b/.github/workflows/daily-multi-device-docs-tester.md @@ -68,6 +68,8 @@ imports: with: title-prefix: "[multi-device-docs] " expires: 3d + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 52e2760f858..db82f948ad4 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"217ffb39c37a58f4a33b0d592dfc583d7b49077984b659d7bfcd42a7228e7350","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"e4d131d5456a6d0f6ffa5f2a45ba07888731d53ee28522688c43ef8b8e6c77f3","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","TAVILY_API_KEY"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -200,24 +200,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF' + cat << 'GH_AW_PROMPT_e9babfc76ee66412_EOF' - GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF + GH_AW_PROMPT_e9babfc76ee66412_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF' + cat << 'GH_AW_PROMPT_e9babfc76ee66412_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF + GH_AW_PROMPT_e9babfc76ee66412_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF' + cat << 'GH_AW_PROMPT_e9babfc76ee66412_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -246,20 +246,20 @@ jobs: {{/if}} - GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF + GH_AW_PROMPT_e9babfc76ee66412_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF' + cat << 'GH_AW_PROMPT_e9babfc76ee66412_EOF' {{#runtime-import .github/workflows/shared/mcp/tavily.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} {{#runtime-import .github/workflows/shared/trends.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/python-dataviz.md}} {{#runtime-import .github/shared/editorial.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-news.md}} - GH_AW_PROMPT_28e02fa8d0cb2ffc_EOF + GH_AW_PROMPT_e9babfc76ee66412_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -611,9 +611,9 @@ jobs: mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs/upload-artifacts" - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_663bba60d7a43d5f_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_1798f1d95ccaa31e_EOF {"create_discussion":{"category":"daily-news","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{},"upload_artifact":{"max-size-bytes":104857600,"max-uploads":3,"retention-days":30,"skip-archive":true},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_663bba60d7a43d5f_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_1798f1d95ccaa31e_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -822,7 +822,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_9465ee07809a8ee8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_fbab7644d7765543_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -889,7 +889,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_9465ee07809a8ee8_EOF + GH_AW_MCP_CONFIG_fbab7644d7765543_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-news.md b/.github/workflows/daily-news.md index c5afac27a8a..f4afae2548b 100644 --- a/.github/workflows/daily-news.md +++ b/.github/workflows/daily-news.md @@ -297,8 +297,10 @@ imports: title-prefix: "[daily-news] " expires: 3d - shared/trends.md + - shared/observability-otlp.md features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-observability-report.lock.yml b/.github/workflows/daily-observability-report.lock.yml index 4344151eb88..1526036b846 100644 --- a/.github/workflows/daily-observability-report.lock.yml +++ b/.github/workflows/daily-observability-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4af89543a56b3fb0beee3bbb82f3bfdfb2c7a147cc3eb369122b53a67b208bef","strict":true,"agent_id":"codex"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bd860ada6c3e2b67dbf00cf7a374b14898658dfaef508477e81bb5d00d7649f0","strict":true,"agent_id":"codex"} # gh-aw-manifest: {"version":1,"secrets":["CODEX_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -204,21 +204,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF' + cat << 'GH_AW_PROMPT_7eac533081138dda_EOF' - GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF + GH_AW_PROMPT_7eac533081138dda_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF' + cat << 'GH_AW_PROMPT_7eac533081138dda_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF + GH_AW_PROMPT_7eac533081138dda_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF' + cat << 'GH_AW_PROMPT_7eac533081138dda_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -247,18 +247,18 @@ jobs: {{/if}} - GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF + GH_AW_PROMPT_7eac533081138dda_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF' + cat << 'GH_AW_PROMPT_7eac533081138dda_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-observability-report.md}} - GH_AW_PROMPT_e9ef4c3e3a4a8b61_EOF + GH_AW_PROMPT_7eac533081138dda_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -527,9 +527,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_22befb32e0625599_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_4617df26bf90fc82_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[observability] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_22befb32e0625599_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_4617df26bf90fc82_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -721,7 +721,7 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_f370142e88f3754b_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_5e43827bc3edaaa0_EOF [history] persistence = "none" @@ -750,11 +750,11 @@ jobs: [mcp_servers.safeoutputs."guard-policies".write-sink] accept = ["*"] - GH_AW_MCP_CONFIG_f370142e88f3754b_EOF + GH_AW_MCP_CONFIG_5e43827bc3edaaa0_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f370142e88f3754b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5e43827bc3edaaa0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -803,11 +803,11 @@ jobs: } } } - GH_AW_MCP_CONFIG_f370142e88f3754b_EOF + GH_AW_MCP_CONFIG_5e43827bc3edaaa0_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_e8f2ed1d933a6863_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_bf45c0cd331ba108_EOF model_provider = "openai-proxy" @@ -819,7 +819,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "GH_AW_ASSETS_ALLOWED_EXTS", "GH_AW_ASSETS_BRANCH", "GH_AW_ASSETS_MAX_SIZE_KB", "GH_AW_SAFE_OUTPUTS", "GITHUB_REPOSITORY", "GITHUB_SERVER_URL", "GITHUB_TOKEN", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_e8f2ed1d933a6863_EOF + GH_AW_CODEX_SHELL_POLICY_bf45c0cd331ba108_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } @@ -1352,18 +1352,18 @@ jobs: DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e CODEX_HOME -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_cf356300878a553d_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-config/config.toml" << GH_AW_MCP_CONFIG_a9213838d68319fe_EOF [history] persistence = "none" [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_MCP_CONFIG_cf356300878a553d_EOF + GH_AW_MCP_CONFIG_a9213838d68319fe_EOF # Generate JSON config for MCP gateway GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_5fdd263a8f0d68ec_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_43a2d3f74066392f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { }, @@ -1374,11 +1374,11 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_5fdd263a8f0d68ec_EOF + GH_AW_MCP_CONFIG_43a2d3f74066392f_EOF # Sync converter output to writable CODEX_HOME for Codex mkdir -p /tmp/gh-aw/mcp-config - cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_fda4aecbc854514f_EOF + cat > "/tmp/gh-aw/mcp-config/config.toml" << GH_AW_CODEX_SHELL_POLICY_914144eab4ea4ebe_EOF model_provider = "openai-proxy" [model_providers.openai-proxy] name = "OpenAI AWF proxy" @@ -1388,7 +1388,7 @@ jobs: [shell_environment_policy] inherit = "core" include_only = ["CODEX_API_KEY", "HOME", "OPENAI_API_KEY", "PATH"] - GH_AW_CODEX_SHELL_POLICY_fda4aecbc854514f_EOF + GH_AW_CODEX_SHELL_POLICY_914144eab4ea4ebe_EOF awk ' BEGIN { skip_openai_proxy = 0 } /^[[:space:]]*model_provider[[:space:]]*=/ { next } diff --git a/.github/workflows/daily-observability-report.md b/.github/workflows/daily-observability-report.md index af03af4f470..e1ffcbccf41 100644 --- a/.github/workflows/daily-observability-report.md +++ b/.github/workflows/daily-observability-report.md @@ -22,6 +22,8 @@ imports: title-prefix: "[observability] " expires: 1d + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml index aaaf39b26b6..05a7bd4dbc7 100644 --- a/.github/workflows/daily-otel-instrumentation-advisor.lock.yml +++ b/.github/workflows/daily-otel-instrumentation-advisor.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bdc3c787bb85a49fe957b5a5190d0cb8950888a866b55cdbbef993a5c2cde1d8","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"508ed3c645a7345809d35847956dac3620f4c468c13ae40e27d51b73ba47c7f7","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -200,20 +200,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_b6460cae38f64f55_EOF' + cat << 'GH_AW_PROMPT_b416332d5fa19b3f_EOF' - GH_AW_PROMPT_b6460cae38f64f55_EOF + GH_AW_PROMPT_b416332d5fa19b3f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_b6460cae38f64f55_EOF' + cat << 'GH_AW_PROMPT_b416332d5fa19b3f_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_b6460cae38f64f55_EOF + GH_AW_PROMPT_b416332d5fa19b3f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_b6460cae38f64f55_EOF' + cat << 'GH_AW_PROMPT_b416332d5fa19b3f_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -242,14 +242,14 @@ jobs: {{/if}} - GH_AW_PROMPT_b6460cae38f64f55_EOF + GH_AW_PROMPT_b416332d5fa19b3f_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_b6460cae38f64f55_EOF' + cat << 'GH_AW_PROMPT_b416332d5fa19b3f_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-otel-instrumentation-advisor.md}} - GH_AW_PROMPT_b6460cae38f64f55_EOF + GH_AW_PROMPT_b416332d5fa19b3f_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -462,9 +462,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_08028fd4fbf2c0d4_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_2adb7f85ecacf40e_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[otel-advisor] "},"create_issue":{"close_older_issues":true,"expires":168,"labels":["observability","developer-experience","automated-analysis"],"max":1,"title_prefix":"[otel-advisor] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_08028fd4fbf2c0d4_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_2adb7f85ecacf40e_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -693,7 +693,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e SENTRY_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_d8f4fd4cfd2de6a1_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_11e70d0dece1de73_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -741,7 +741,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_d8f4fd4cfd2de6a1_EOF + GH_AW_MCP_CONFIG_11e70d0dece1de73_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-otel-instrumentation-advisor.md b/.github/workflows/daily-otel-instrumentation-advisor.md index 37a6f72b611..1f522961622 100644 --- a/.github/workflows/daily-otel-instrumentation-advisor.md +++ b/.github/workflows/daily-otel-instrumentation-advisor.md @@ -35,6 +35,8 @@ imports: with: title-prefix: "[otel-advisor] " expires: 3d + + - shared/observability-otlp.md --- # Daily OTel Instrumentation Advisor diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index 8dc98626219..6cfb812fbe0 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"094b59faf7df2201631ea1b6dd01f26a169dd58d40a732381823a482bc5542c1","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d844320f5f0794200cf5471bab9419f7ffdca6d2413a52bf5a075c5f5cb123e3","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -204,23 +204,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_730db0161c28513c_EOF' + cat << 'GH_AW_PROMPT_19aea5f576325c59_EOF' - GH_AW_PROMPT_730db0161c28513c_EOF + GH_AW_PROMPT_19aea5f576325c59_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_730db0161c28513c_EOF' + cat << 'GH_AW_PROMPT_19aea5f576325c59_EOF' Tools: create_discussion, upload_asset(max:3), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_730db0161c28513c_EOF + GH_AW_PROMPT_19aea5f576325c59_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_730db0161c28513c_EOF' + cat << 'GH_AW_PROMPT_19aea5f576325c59_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -249,17 +249,17 @@ jobs: {{/if}} - GH_AW_PROMPT_730db0161c28513c_EOF + GH_AW_PROMPT_19aea5f576325c59_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_730db0161c28513c_EOF' + cat << 'GH_AW_PROMPT_19aea5f576325c59_EOF' {{#runtime-import .github/workflows/shared/github-queries-mcp-script.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/trending-charts-simple.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-performance-summary.md}} - GH_AW_PROMPT_730db0161c28513c_EOF + GH_AW_PROMPT_19aea5f576325c59_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -511,9 +511,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_8521542f3e35f04f_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_d8ca2d5cdf65a422_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily performance] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":3,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_8521542f3e35f04f_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d8ca2d5cdf65a422_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -686,7 +686,7 @@ jobs: - name: Write MCP Scripts Config run: | mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_f076d0f7e541d78e_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_a389d14f96743fda_EOF' { "serverName": "mcpscripts", "version": "1.0.0", @@ -780,8 +780,8 @@ jobs: } ] } - GH_AW_MCP_SCRIPTS_TOOLS_f076d0f7e541d78e_EOF - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_931a89b040cdb39a_EOF' + GH_AW_MCP_SCRIPTS_TOOLS_a389d14f96743fda_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_ca1a034f329d5bcc_EOF' const path = require("path"); const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs"); const configPath = path.join(__dirname, "tools.json"); @@ -795,12 +795,12 @@ jobs: console.error("Failed to start mcp-scripts HTTP server:", error); process.exit(1); }); - GH_AW_MCP_SCRIPTS_SERVER_931a89b040cdb39a_EOF + GH_AW_MCP_SCRIPTS_SERVER_ca1a034f329d5bcc_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" - name: Write MCP Scripts Tool Files run: | - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-discussion-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_bef194a7df1936ec_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-discussion-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_aedb2a0bff12b8e8_EOF' #!/bin/bash # Auto-generated mcp-script tool: github-discussion-query # Query GitHub discussions with jq filtering support. Without --jq, returns schema and data size info. Use --jq '.' to get all data, or specific jq expressions to filter. @@ -936,9 +936,9 @@ jobs: fi - GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_bef194a7df1936ec_EOF + GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_aedb2a0bff12b8e8_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-discussion-query.sh" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-issue-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_8b651ee3c74fdea6_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-issue-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_157744c913cd370c_EOF' #!/bin/bash # Auto-generated mcp-script tool: github-issue-query # Query GitHub issues with jq filtering support. Without --jq, returns schema and data size info. Use --jq '.' to get all data, or specific jq expressions to filter. @@ -1017,9 +1017,9 @@ jobs: fi - GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_8b651ee3c74fdea6_EOF + GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_157744c913cd370c_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-issue-query.sh" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-pr-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_21680f9c0389df11_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-pr-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_66b47464c07a8f46_EOF' #!/bin/bash # Auto-generated mcp-script tool: github-pr-query # Query GitHub pull requests with jq filtering support. Without --jq, returns schema and data size info. Use --jq '.' to get all data, or specific jq expressions to filter. @@ -1104,7 +1104,7 @@ jobs: fi - GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_21680f9c0389df11_EOF + GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_66b47464c07a8f46_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-pr-query.sh" - name: Generate MCP Scripts Server Config @@ -1178,7 +1178,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f9d51b9482f9944c_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_eab0560dec25be75_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "mcpscripts": { @@ -1223,7 +1223,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_f9d51b9482f9944c_EOF + GH_AW_MCP_CONFIG_eab0560dec25be75_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-performance-summary.md b/.github/workflows/daily-performance-summary.md index 106ba0436ef..05bcd3bfd83 100644 --- a/.github/workflows/daily-performance-summary.md +++ b/.github/workflows/daily-performance-summary.md @@ -28,6 +28,8 @@ imports: title-prefix: "[daily performance] " - shared/github-queries-mcp-script.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-regulatory.lock.yml b/.github/workflows/daily-regulatory.lock.yml index 678de1920b4..7dcb5aedf3d 100644 --- a/.github/workflows/daily-regulatory.lock.yml +++ b/.github/workflows/daily-regulatory.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"045264000689ed270b8e2941cdf5698ac8884a9f5e603c3bc0717fe93924a511","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"935cf86fe5e4f1d54245742431c0356b23d179edcf80d49f4be0d3557e4cc7c9","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -198,20 +198,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_5633618930b71403_EOF' + cat << 'GH_AW_PROMPT_87aeb39059169d8b_EOF' - GH_AW_PROMPT_5633618930b71403_EOF + GH_AW_PROMPT_87aeb39059169d8b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_5633618930b71403_EOF' + cat << 'GH_AW_PROMPT_87aeb39059169d8b_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_5633618930b71403_EOF + GH_AW_PROMPT_87aeb39059169d8b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_5633618930b71403_EOF' + cat << 'GH_AW_PROMPT_87aeb39059169d8b_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -240,16 +240,16 @@ jobs: {{/if}} - GH_AW_PROMPT_5633618930b71403_EOF + GH_AW_PROMPT_87aeb39059169d8b_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_5633618930b71403_EOF' + cat << 'GH_AW_PROMPT_87aeb39059169d8b_EOF' {{#runtime-import .github/workflows/shared/github-queries-mcp-script.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-regulatory.md}} - GH_AW_PROMPT_5633618930b71403_EOF + GH_AW_PROMPT_87aeb39059169d8b_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -461,9 +461,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_1b6138d26e376592_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a775edf3fbc051fb_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily regulatory] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_1b6138d26e376592_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_a775edf3fbc051fb_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -626,7 +626,7 @@ jobs: - name: Write MCP Scripts Config run: | mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-scripts/logs" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_1c066b52de44586e_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/tools.json" << 'GH_AW_MCP_SCRIPTS_TOOLS_a2cd27f51ccaa00e_EOF' { "serverName": "mcpscripts", "version": "1.0.0", @@ -720,8 +720,8 @@ jobs: } ] } - GH_AW_MCP_SCRIPTS_TOOLS_1c066b52de44586e_EOF - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_90a2b2aae57e3c86_EOF' + GH_AW_MCP_SCRIPTS_TOOLS_a2cd27f51ccaa00e_EOF + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" << 'GH_AW_MCP_SCRIPTS_SERVER_05326d004de599c3_EOF' const path = require("path"); const { startHttpServer } = require("./mcp_scripts_mcp_server_http.cjs"); const configPath = path.join(__dirname, "tools.json"); @@ -735,12 +735,12 @@ jobs: console.error("Failed to start mcp-scripts HTTP server:", error); process.exit(1); }); - GH_AW_MCP_SCRIPTS_SERVER_90a2b2aae57e3c86_EOF + GH_AW_MCP_SCRIPTS_SERVER_05326d004de599c3_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/mcp-server.cjs" - name: Write MCP Scripts Tool Files run: | - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-discussion-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_84fdc1374bc70da1_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-discussion-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_4d6c34067d7ac906_EOF' #!/bin/bash # Auto-generated mcp-script tool: github-discussion-query # Query GitHub discussions with jq filtering support. Without --jq, returns schema and data size info. Use --jq '.' to get all data, or specific jq expressions to filter. @@ -876,9 +876,9 @@ jobs: fi - GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_84fdc1374bc70da1_EOF + GH_AW_MCP_SCRIPTS_SH_GITHUB-DISCUSSION-QUERY_4d6c34067d7ac906_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-discussion-query.sh" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-issue-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_1e18d8574e130130_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-issue-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_659edbd3aac45ddd_EOF' #!/bin/bash # Auto-generated mcp-script tool: github-issue-query # Query GitHub issues with jq filtering support. Without --jq, returns schema and data size info. Use --jq '.' to get all data, or specific jq expressions to filter. @@ -957,9 +957,9 @@ jobs: fi - GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_1e18d8574e130130_EOF + GH_AW_MCP_SCRIPTS_SH_GITHUB-ISSUE-QUERY_659edbd3aac45ddd_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-issue-query.sh" - cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-pr-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_75020e2702738e71_EOF' + cat > "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-pr-query.sh" << 'GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_7a4d346dfb914582_EOF' #!/bin/bash # Auto-generated mcp-script tool: github-pr-query # Query GitHub pull requests with jq filtering support. Without --jq, returns schema and data size info. Use --jq '.' to get all data, or specific jq expressions to filter. @@ -1044,7 +1044,7 @@ jobs: fi - GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_75020e2702738e71_EOF + GH_AW_MCP_SCRIPTS_SH_GITHUB-PR-QUERY_7a4d346dfb914582_EOF chmod +x "${RUNNER_TEMP}/gh-aw/mcp-scripts/github-pr-query.sh" - name: Generate MCP Scripts Server Config @@ -1118,7 +1118,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_5bc308114bf18cae_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_435d7e6e5e5eb30e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -1179,7 +1179,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_5bc308114bf18cae_EOF + GH_AW_MCP_CONFIG_435d7e6e5e5eb30e_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-regulatory.md b/.github/workflows/daily-regulatory.md index 6f8641fcdb9..6b832ed2968 100644 --- a/.github/workflows/daily-regulatory.md +++ b/.github/workflows/daily-regulatory.md @@ -25,6 +25,8 @@ imports: title-prefix: "[daily regulatory] " - shared/github-queries-mcp-script.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-rendering-scripts-verifier.lock.yml b/.github/workflows/daily-rendering-scripts-verifier.lock.yml index b340d83af33..3cf37c0acd9 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.lock.yml +++ b/.github/workflows/daily-rendering-scripts-verifier.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2c64b893f61f33a9d3605485d8987044cfbf4bb3317ee94a7ec7eda27618558d","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"34b1f1d9b5be1af85cabd4657a28e1833110f4b548ddf540007adb402f5d1025","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -211,25 +211,25 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_061dcd5805132962_EOF' + cat << 'GH_AW_PROMPT_a769297d84d066a0_EOF' - GH_AW_PROMPT_061dcd5805132962_EOF + GH_AW_PROMPT_a769297d84d066a0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_061dcd5805132962_EOF' + cat << 'GH_AW_PROMPT_a769297d84d066a0_EOF' Tools: create_discussion, create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_061dcd5805132962_EOF + GH_AW_PROMPT_a769297d84d066a0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_061dcd5805132962_EOF' + cat << 'GH_AW_PROMPT_a769297d84d066a0_EOF' - GH_AW_PROMPT_061dcd5805132962_EOF + GH_AW_PROMPT_a769297d84d066a0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_061dcd5805132962_EOF' + cat << 'GH_AW_PROMPT_a769297d84d066a0_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -258,19 +258,19 @@ jobs: {{/if}} - GH_AW_PROMPT_061dcd5805132962_EOF + GH_AW_PROMPT_a769297d84d066a0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_061dcd5805132962_EOF' + cat << 'GH_AW_PROMPT_a769297d84d066a0_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-rendering-scripts-verifier.md}} - GH_AW_PROMPT_061dcd5805132962_EOF + GH_AW_PROMPT_a769297d84d066a0_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -561,9 +561,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_60c9978187b06744_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_3f0afee427bd53ac_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[rendering-scripts] "},"create_pull_request":{"expires":72,"labels":["rendering","javascript","automated-fix"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","CLAUDE.md","AGENTS.md"],"reviewers":["copilot"],"title_prefix":"[rendering-scripts] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_60c9978187b06744_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_3f0afee427bd53ac_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -797,7 +797,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ec75350637e02b5a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_6b5cac84e252ad74_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -846,7 +846,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_ec75350637e02b5a_EOF + GH_AW_MCP_CONFIG_6b5cac84e252ad74_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-rendering-scripts-verifier.md b/.github/workflows/daily-rendering-scripts-verifier.md index 89a99ce1584..3a28dc69990 100644 --- a/.github/workflows/daily-rendering-scripts-verifier.md +++ b/.github/workflows/daily-rendering-scripts-verifier.md @@ -50,6 +50,8 @@ imports: with: title-prefix: "[rendering-scripts] " expires: 3d + + - shared/observability-otlp.md --- # Daily Rendering Scripts Verifier diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 2eef034f770..eebb8ead9ba 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"704939c0e3ba029bc3f5011dc82b4330659f1e7b4c73704c812fc5204d1fe25b","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"925409929caa6f4dc1e139ad2ef78b8914f48e7042bdced51a849b7cf73b8366","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -196,23 +196,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_812a91cc1da6db0b_EOF' + cat << 'GH_AW_PROMPT_caf9daa69c09d1c2_EOF' - GH_AW_PROMPT_812a91cc1da6db0b_EOF + GH_AW_PROMPT_caf9daa69c09d1c2_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_812a91cc1da6db0b_EOF' + cat << 'GH_AW_PROMPT_caf9daa69c09d1c2_EOF' Tools: create_discussion, upload_asset(max:3), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_812a91cc1da6db0b_EOF + GH_AW_PROMPT_caf9daa69c09d1c2_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_812a91cc1da6db0b_EOF' + cat << 'GH_AW_PROMPT_caf9daa69c09d1c2_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -241,17 +241,17 @@ jobs: {{/if}} - GH_AW_PROMPT_812a91cc1da6db0b_EOF + GH_AW_PROMPT_caf9daa69c09d1c2_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_812a91cc1da6db0b_EOF' + cat << 'GH_AW_PROMPT_caf9daa69c09d1c2_EOF' {{#runtime-import .github/workflows/shared/trends.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/python-dataviz.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-repo-chronicle.md}} - GH_AW_PROMPT_812a91cc1da6db0b_EOF + GH_AW_PROMPT_caf9daa69c09d1c2_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -504,9 +504,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_f5e2f7de0af6f8a7_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_7092e76421ae09d4_EOF {"create_discussion":{"category":"announcements","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"📰 "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":3,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_f5e2f7de0af6f8a7_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_7092e76421ae09d4_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -711,7 +711,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_6aa0c4b155f668d8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_4fa3d2434f21fc7a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -742,7 +742,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_6aa0c4b155f668d8_EOF + GH_AW_MCP_CONFIG_4fa3d2434f21fc7a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-repo-chronicle.md b/.github/workflows/daily-repo-chronicle.md index fc558617547..043a2347d4d 100644 --- a/.github/workflows/daily-repo-chronicle.md +++ b/.github/workflows/daily-repo-chronicle.md @@ -46,8 +46,10 @@ imports: title-prefix: "[repo-chronicle] " expires: 3d - shared/trends.md + - shared/observability-otlp.md features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-safe-output-integrator.lock.yml b/.github/workflows/daily-safe-output-integrator.lock.yml index e6ff3ef608a..ef181ed7f5f 100644 --- a/.github/workflows/daily-safe-output-integrator.lock.yml +++ b/.github/workflows/daily-safe-output-integrator.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"69b3c1582a106c49b8603957bc548aea35822941589ac8ccd20d96298891d6a6","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"846bdf86f88c296488c35bdeaa677cbce4e16bead11362f535e9ee87d52662c5","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -192,23 +192,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_cf374c04d7583735_EOF' + cat << 'GH_AW_PROMPT_678757ca91faeeb0_EOF' - GH_AW_PROMPT_cf374c04d7583735_EOF + GH_AW_PROMPT_678757ca91faeeb0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_cf374c04d7583735_EOF' + cat << 'GH_AW_PROMPT_678757ca91faeeb0_EOF' Tools: create_discussion, create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_cf374c04d7583735_EOF + GH_AW_PROMPT_678757ca91faeeb0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_cf374c04d7583735_EOF' + cat << 'GH_AW_PROMPT_678757ca91faeeb0_EOF' - GH_AW_PROMPT_cf374c04d7583735_EOF + GH_AW_PROMPT_678757ca91faeeb0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_cf374c04d7583735_EOF' + cat << 'GH_AW_PROMPT_678757ca91faeeb0_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -237,14 +237,14 @@ jobs: {{/if}} - GH_AW_PROMPT_cf374c04d7583735_EOF + GH_AW_PROMPT_678757ca91faeeb0_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_cf374c04d7583735_EOF' + cat << 'GH_AW_PROMPT_678757ca91faeeb0_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-safe-output-integrator.md}} - GH_AW_PROMPT_cf374c04d7583735_EOF + GH_AW_PROMPT_678757ca91faeeb0_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -455,9 +455,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_986bded9b1876ec9_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_8c7be18ec12b764b_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[safe-output-integrator] "},"create_pull_request":{"draft":false,"expires":72,"labels":["safe-outputs","testing","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"title_prefix":"[safe-output-integrator] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_986bded9b1876ec9_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_8c7be18ec12b764b_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -691,7 +691,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_bf4ff3b01d4ea06f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5945e08c0bfa40be_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -722,7 +722,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_bf4ff3b01d4ea06f_EOF + GH_AW_MCP_CONFIG_5945e08c0bfa40be_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-safe-output-integrator.md b/.github/workflows/daily-safe-output-integrator.md index fc9982dbc4c..9e97164f9c7 100644 --- a/.github/workflows/daily-safe-output-integrator.md +++ b/.github/workflows/daily-safe-output-integrator.md @@ -50,8 +50,10 @@ imports: title-prefix: "[safe-output-integrator] " expires: 3d + - shared/observability-otlp.md features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-safe-output-optimizer.lock.yml b/.github/workflows/daily-safe-output-optimizer.lock.yml index e9b1e8c9acf..37fef5b8255 100644 --- a/.github/workflows/daily-safe-output-optimizer.lock.yml +++ b/.github/workflows/daily-safe-output-optimizer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"90a30e18afa62d8695f38c1e41cb38c0d4ab5f7b5e2daa6f7596fc3501b4bc48","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"2b0a7d1ec1c92152619a413d17a02e3b71be0f7f3916f7202e92ce2cf2945207","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -209,22 +209,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_a7436433defef823_EOF' + cat << 'GH_AW_PROMPT_1017c2bcf2421942_EOF' - GH_AW_PROMPT_a7436433defef823_EOF + GH_AW_PROMPT_1017c2bcf2421942_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_a7436433defef823_EOF' + cat << 'GH_AW_PROMPT_1017c2bcf2421942_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_a7436433defef823_EOF + GH_AW_PROMPT_1017c2bcf2421942_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_a7436433defef823_EOF' + cat << 'GH_AW_PROMPT_1017c2bcf2421942_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -253,18 +253,18 @@ jobs: {{/if}} - GH_AW_PROMPT_a7436433defef823_EOF + GH_AW_PROMPT_1017c2bcf2421942_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_a7436433defef823_EOF' + cat << 'GH_AW_PROMPT_1017c2bcf2421942_EOF' {{#runtime-import .github/workflows/shared/aw-logs-24h-fetch.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/jqschema.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-safe-output-optimizer.md}} - GH_AW_PROMPT_a7436433defef823_EOF + GH_AW_PROMPT_1017c2bcf2421942_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -561,9 +561,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c1d7e9257f70e0ad_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_6681d7e2a037ebd9_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[safe-output-optimizer] "},"create_issue":{"expires":48,"labels":["bug","safe-outputs","tool-improvement","automated-analysis","cookie"],"max":1,"title_prefix":"[safeoutputs] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_c1d7e9257f70e0ad_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_6681d7e2a037ebd9_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -795,7 +795,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_6c49450567e3eaf1_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_efd754a98bf60c1b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -859,7 +859,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_6c49450567e3eaf1_EOF + GH_AW_MCP_CONFIG_efd754a98bf60c1b_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-safe-output-optimizer.md b/.github/workflows/daily-safe-output-optimizer.md index 08c72a373c8..272045e58c6 100644 --- a/.github/workflows/daily-safe-output-optimizer.md +++ b/.github/workflows/daily-safe-output-optimizer.md @@ -33,8 +33,10 @@ imports: with: title-prefix: "[safe-output-optimizer] " expires: 3d + - shared/observability-otlp.md tools: cli-proxy: true + --- # Safe Output Tool Optimizer diff --git a/.github/workflows/daily-safe-outputs-conformance.lock.yml b/.github/workflows/daily-safe-outputs-conformance.lock.yml index d600deba415..96056f7960e 100644 --- a/.github/workflows/daily-safe-outputs-conformance.lock.yml +++ b/.github/workflows/daily-safe-outputs-conformance.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c5b938f024d076d342904dc6efbdb8aae0b76d8002f38b088f6df14b451cd15f","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7ac9ac4e4d7de13796dea108eab4baa2f3de0e5fd78fd9367fd7f0b158ea3b1c","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -198,20 +198,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_f29d244b9c2b73c7_EOF' + cat << 'GH_AW_PROMPT_1303d27e56c17e95_EOF' - GH_AW_PROMPT_f29d244b9c2b73c7_EOF + GH_AW_PROMPT_1303d27e56c17e95_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_f29d244b9c2b73c7_EOF' + cat << 'GH_AW_PROMPT_1303d27e56c17e95_EOF' Tools: create_issue(max:10), create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_f29d244b9c2b73c7_EOF + GH_AW_PROMPT_1303d27e56c17e95_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_f29d244b9c2b73c7_EOF' + cat << 'GH_AW_PROMPT_1303d27e56c17e95_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -240,14 +240,14 @@ jobs: {{/if}} - GH_AW_PROMPT_f29d244b9c2b73c7_EOF + GH_AW_PROMPT_1303d27e56c17e95_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_f29d244b9c2b73c7_EOF' + cat << 'GH_AW_PROMPT_1303d27e56c17e95_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-safe-outputs-conformance.md}} - GH_AW_PROMPT_f29d244b9c2b73c7_EOF + GH_AW_PROMPT_1303d27e56c17e95_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -455,9 +455,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_30dd3452194c060a_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_31e1de3554cc9047_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[safe-outputs-conformance] "},"create_issue":{"close_older_issues":true,"expires":24,"labels":["safe-outputs","conformance","automated"],"max":10,"title_prefix":"[Safe Outputs Conformance] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_30dd3452194c060a_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_31e1de3554cc9047_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -685,7 +685,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_db44ff64ecdd0a6e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_fdb24e7ba58a1699_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -716,7 +716,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_db44ff64ecdd0a6e_EOF + GH_AW_MCP_CONFIG_fdb24e7ba58a1699_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-safe-outputs-conformance.md b/.github/workflows/daily-safe-outputs-conformance.md index 6a897955f1b..b157aa50171 100644 --- a/.github/workflows/daily-safe-outputs-conformance.md +++ b/.github/workflows/daily-safe-outputs-conformance.md @@ -29,6 +29,8 @@ imports: title-prefix: "[safe-outputs-conformance] " expires: 1d + + - shared/observability-otlp.md --- # Daily Safe Outputs Conformance Checker diff --git a/.github/workflows/daily-secrets-analysis.lock.yml b/.github/workflows/daily-secrets-analysis.lock.yml index 783bb47df39..bfbc634a8fd 100644 --- a/.github/workflows/daily-secrets-analysis.lock.yml +++ b/.github/workflows/daily-secrets-analysis.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"196f0edb92cff10bf32778bf8c9d9c015319b2650be9b3abf20f586d717e6d1f","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"b8ed4b505c9e5e98124eaa64b20ce9c50a5e7913da5548b358fed84f480d711e","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -191,20 +191,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_07320c26ba0601f0_EOF' + cat << 'GH_AW_PROMPT_e04a553951ac85af_EOF' - GH_AW_PROMPT_07320c26ba0601f0_EOF + GH_AW_PROMPT_e04a553951ac85af_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_07320c26ba0601f0_EOF' + cat << 'GH_AW_PROMPT_e04a553951ac85af_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_07320c26ba0601f0_EOF + GH_AW_PROMPT_e04a553951ac85af_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_07320c26ba0601f0_EOF' + cat << 'GH_AW_PROMPT_e04a553951ac85af_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -233,15 +233,15 @@ jobs: {{/if}} - GH_AW_PROMPT_07320c26ba0601f0_EOF + GH_AW_PROMPT_e04a553951ac85af_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_07320c26ba0601f0_EOF' + cat << 'GH_AW_PROMPT_e04a553951ac85af_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-secrets-analysis.md}} - GH_AW_PROMPT_07320c26ba0601f0_EOF + GH_AW_PROMPT_e04a553951ac85af_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -453,9 +453,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_4172b0f42de739d8_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_9c27747052332ede_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily secrets] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_4172b0f42de739d8_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_9c27747052332ede_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -647,7 +647,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_744d5a9ce8a648bc_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_7ed5d6ee4e9deda5_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -678,7 +678,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_744d5a9ce8a648bc_EOF + GH_AW_MCP_CONFIG_7ed5d6ee4e9deda5_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-secrets-analysis.md b/.github/workflows/daily-secrets-analysis.md index 6ff6ce5da57..23a36ed74a5 100644 --- a/.github/workflows/daily-secrets-analysis.md +++ b/.github/workflows/daily-secrets-analysis.md @@ -22,8 +22,10 @@ imports: - uses: shared/daily-audit-base.md with: title-prefix: "[daily secrets] " + - shared/observability-otlp.md features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-security-observability.lock.yml b/.github/workflows/daily-security-observability.lock.yml index c067dcda06a..0258d1c3cfc 100644 --- a/.github/workflows/daily-security-observability.lock.yml +++ b/.github/workflows/daily-security-observability.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a2167ef8cfb9632256a96de886ab40051b28c1bb60e9f38d7e889bcfb6663fbb","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"438602eb84fc2c638ca07226f6cd732e377bc3ca9f737cd66482d54a6cc5bf03","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"a309ff8b426b58ec0e2a45f0f869d46889d02405","version":"v6.2.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -208,24 +208,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_df4ffbba47e4b409_EOF' + cat << 'GH_AW_PROMPT_82bf5465b345a4ca_EOF' - GH_AW_PROMPT_df4ffbba47e4b409_EOF + GH_AW_PROMPT_82bf5465b345a4ca_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_df4ffbba47e4b409_EOF' + cat << 'GH_AW_PROMPT_82bf5465b345a4ca_EOF' Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs). - GH_AW_PROMPT_df4ffbba47e4b409_EOF + GH_AW_PROMPT_82bf5465b345a4ca_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_df4ffbba47e4b409_EOF' + cat << 'GH_AW_PROMPT_82bf5465b345a4ca_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -254,20 +254,20 @@ jobs: {{/if}} - GH_AW_PROMPT_df4ffbba47e4b409_EOF + GH_AW_PROMPT_82bf5465b345a4ca_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_df4ffbba47e4b409_EOF' + cat << 'GH_AW_PROMPT_82bf5465b345a4ca_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. {{#runtime-import .github/workflows/shared/python-dataviz.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/trending-charts-simple.md}} {{#runtime-import .github/workflows/shared/reporting.md}} - {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-security-observability.md}} - GH_AW_PROMPT_df4ffbba47e4b409_EOF + GH_AW_PROMPT_82bf5465b345a4ca_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -606,9 +606,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_96d9d0dd0eb912a3_EOF + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << GH_AW_SAFE_OUTPUTS_CONFIG_192370adbce5bbf4_EOF {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[security-observability] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"upload_asset":{"allowed-exts":[".png",".jpg",".jpeg",".svg"],"branch":"assets/${GITHUB_WORKFLOW}","max":5,"max-size":10240}} - GH_AW_SAFE_OUTPUTS_CONFIG_96d9d0dd0eb912a3_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_192370adbce5bbf4_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -814,7 +814,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_9c0762245f78d923_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_0d46467026a6862b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -864,7 +864,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_9c0762245f78d923_EOF + GH_AW_MCP_CONFIG_0d46467026a6862b_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-security-observability.md b/.github/workflows/daily-security-observability.md index c59f70e01e4..6d18a73aa02 100644 --- a/.github/workflows/daily-security-observability.md +++ b/.github/workflows/daily-security-observability.md @@ -66,6 +66,8 @@ imports: title-prefix: "[security-observability] " - shared/python-dataviz.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-security-red-team.lock.yml b/.github/workflows/daily-security-red-team.lock.yml index 07743b2dc98..615e386865b 100644 --- a/.github/workflows/daily-security-red-team.lock.yml +++ b/.github/workflows/daily-security-red-team.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5ac9d361c9968adc7585ddfe3152c16ae13d0db29c4dc89095c9dcd9a8ccb4e8","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"808f46d64f1cf0ce32aac0ac19d1681479455416cae8ec234acff0d8af47c22c","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -202,21 +202,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_7d98608d9d74e9db_EOF' + cat << 'GH_AW_PROMPT_7880e8d546957d95_EOF' - GH_AW_PROMPT_7d98608d9d74e9db_EOF + GH_AW_PROMPT_7880e8d546957d95_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_7d98608d9d74e9db_EOF' + cat << 'GH_AW_PROMPT_7880e8d546957d95_EOF' Tools: create_issue(max:5), create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_7d98608d9d74e9db_EOF + GH_AW_PROMPT_7880e8d546957d95_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_7d98608d9d74e9db_EOF' + cat << 'GH_AW_PROMPT_7880e8d546957d95_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -245,15 +245,15 @@ jobs: {{/if}} - GH_AW_PROMPT_7d98608d9d74e9db_EOF + GH_AW_PROMPT_7880e8d546957d95_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_7d98608d9d74e9db_EOF' + cat << 'GH_AW_PROMPT_7880e8d546957d95_EOF' {{#runtime-import .github/workflows/shared/security-analysis-base.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/daily-security-red-team.md}} - GH_AW_PROMPT_7d98608d9d74e9db_EOF + GH_AW_PROMPT_7880e8d546957d95_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -487,9 +487,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_02a524cecd8f0bba_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_929e69f904dc3862_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[security-red-team] "},"create_issue":{"labels":["security","red-team"],"max":5,"title_prefix":"🚨 [SECURITY]"},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_02a524cecd8f0bba_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_929e69f904dc3862_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -717,7 +717,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_fb7ffea3188ba945_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_b185e824bb760104_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -748,7 +748,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_fb7ffea3188ba945_EOF + GH_AW_MCP_CONFIG_b185e824bb760104_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-security-red-team.md b/.github/workflows/daily-security-red-team.md index 1155eb93cba..f52b041ed81 100644 --- a/.github/workflows/daily-security-red-team.md +++ b/.github/workflows/daily-security-red-team.md @@ -31,6 +31,8 @@ imports: with: title-prefix: "[security-red-team] " expires: 3d + + - shared/observability-otlp.md --- # Daily Security Red Team Agent diff --git a/.github/workflows/daily-sentrux-report.lock.yml b/.github/workflows/daily-sentrux-report.lock.yml index cf547b5f22a..67f5d6641a5 100644 --- a/.github/workflows/daily-sentrux-report.lock.yml +++ b/.github/workflows/daily-sentrux-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"57f90d3b41779f9135ed91c7806b5a3b24ad4e81151629282af4c559e3546c39","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c10d16ea0e58c7d253e9e0eec4ff0dd0bb1fa3237fb8108718f323c6bcd77cd7","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -199,21 +199,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_719df1a6ce2b4e6a_EOF' + cat << 'GH_AW_PROMPT_4293a030d1704503_EOF' - GH_AW_PROMPT_719df1a6ce2b4e6a_EOF + GH_AW_PROMPT_4293a030d1704503_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_719df1a6ce2b4e6a_EOF' + cat << 'GH_AW_PROMPT_4293a030d1704503_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_719df1a6ce2b4e6a_EOF + GH_AW_PROMPT_4293a030d1704503_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_719df1a6ce2b4e6a_EOF' + cat << 'GH_AW_PROMPT_4293a030d1704503_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -242,16 +242,16 @@ jobs: {{/if}} - GH_AW_PROMPT_719df1a6ce2b4e6a_EOF + GH_AW_PROMPT_4293a030d1704503_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_719df1a6ce2b4e6a_EOF' + cat << 'GH_AW_PROMPT_4293a030d1704503_EOF' {{#runtime-import .github/workflows/shared/mcp/sentrux.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-sentrux-report.md}} - GH_AW_PROMPT_719df1a6ce2b4e6a_EOF + GH_AW_PROMPT_4293a030d1704503_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -488,9 +488,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_e6d773486321e2e2_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_47b360400f47e04f_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[daily-sentrux] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":51200,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_e6d773486321e2e2_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_47b360400f47e04f_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -685,7 +685,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_4097461df087301e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c329e611dde12078_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -732,7 +732,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_4097461df087301e_EOF + GH_AW_MCP_CONFIG_c329e611dde12078_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-sentrux-report.md b/.github/workflows/daily-sentrux-report.md index 8ae3b1f8019..a9095c12701 100644 --- a/.github/workflows/daily-sentrux-report.md +++ b/.github/workflows/daily-sentrux-report.md @@ -12,6 +12,7 @@ imports: title-prefix: "[daily-sentrux] " expires: "3d" - shared/mcp/sentrux.md + - shared/observability-otlp.md network: allowed: - defaults @@ -25,6 +26,7 @@ tools: file-glob: ["*.json", "*.jsonl"] max-file-size: 51200 engine: copilot + --- # Daily Sentrux Codebase Quality Report diff --git a/.github/workflows/daily-skill-optimizer.lock.yml b/.github/workflows/daily-skill-optimizer.lock.yml index d180c497324..acae0533690 100644 --- a/.github/workflows/daily-skill-optimizer.lock.yml +++ b/.github/workflows/daily-skill-optimizer.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"8baed80cab30b6fa60ebbb1038a94feb13d2db226a0f88effccf65c0e89df0e5","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5dece9fcfbbc61e7699ae39a692231ece6d464f8b6357081401b622e47f46e6c","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","OPENROUTER_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -196,20 +196,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_3765d1e9a22d512a_EOF' + cat << 'GH_AW_PROMPT_35382c7d3934d712_EOF' - GH_AW_PROMPT_3765d1e9a22d512a_EOF + GH_AW_PROMPT_35382c7d3934d712_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_3765d1e9a22d512a_EOF' + cat << 'GH_AW_PROMPT_35382c7d3934d712_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_3765d1e9a22d512a_EOF + GH_AW_PROMPT_35382c7d3934d712_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_3765d1e9a22d512a_EOF' + cat << 'GH_AW_PROMPT_35382c7d3934d712_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -238,14 +238,14 @@ jobs: {{/if}} - GH_AW_PROMPT_3765d1e9a22d512a_EOF + GH_AW_PROMPT_35382c7d3934d712_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_3765d1e9a22d512a_EOF' + cat << 'GH_AW_PROMPT_35382c7d3934d712_EOF' {{#runtime-import .github/workflows/shared/otel.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/daily-skill-optimizer.md}} - GH_AW_PROMPT_3765d1e9a22d512a_EOF + GH_AW_PROMPT_35382c7d3934d712_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -462,9 +462,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a70c1d05a58a99d6_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_473e13c4d234c1da_EOF' {"create_issue":{"expires":168,"labels":["automation","documentation","prompt-quality"],"max":1,"title_prefix":"[skill-optimizer] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_a70c1d05a58a99d6_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_473e13c4d234c1da_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -669,7 +669,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_9b7c880f86093da8_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_40247ab26532a41b_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -716,7 +716,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_9b7c880f86093da8_EOF + GH_AW_MCP_CONFIG_40247ab26532a41b_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-skill-optimizer.md b/.github/workflows/daily-skill-optimizer.md index 1d92adbd2f1..e989e1d5f97 100644 --- a/.github/workflows/daily-skill-optimizer.md +++ b/.github/workflows/daily-skill-optimizer.md @@ -146,6 +146,8 @@ tools: imports: - shared/otel.md + + - shared/observability-otlp.md --- # Daily Skill Optimizer Improvements diff --git a/.github/workflows/daily-spdd-spec-planner.lock.yml b/.github/workflows/daily-spdd-spec-planner.lock.yml index e4e0027b30a..44578e54e57 100644 --- a/.github/workflows/daily-spdd-spec-planner.lock.yml +++ b/.github/workflows/daily-spdd-spec-planner.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a6fda12069890cbfe1eabf57a04192dada1eff4a56042469fa58bc614b27d80","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"df00d6dbe435268b6e4d8b8bef5b573149c52ff46446211962381db892857142","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_AGENT_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - shared/activation-app.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/daily-issue-base.md # @@ -34,6 +35,8 @@ # - GH_AW_AGENT_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -75,6 +78,13 @@ concurrency: run-name: "Daily SPDD Spec Planner" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -107,6 +117,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -182,21 +194,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_42f2f78c0783069b_EOF' + cat << 'GH_AW_PROMPT_395e274ad3496c40_EOF' - GH_AW_PROMPT_42f2f78c0783069b_EOF + GH_AW_PROMPT_395e274ad3496c40_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_42f2f78c0783069b_EOF' + cat << 'GH_AW_PROMPT_395e274ad3496c40_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_42f2f78c0783069b_EOF + GH_AW_PROMPT_395e274ad3496c40_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_42f2f78c0783069b_EOF' + cat << 'GH_AW_PROMPT_395e274ad3496c40_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -225,15 +237,16 @@ jobs: {{/if}} - GH_AW_PROMPT_42f2f78c0783069b_EOF + GH_AW_PROMPT_395e274ad3496c40_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_42f2f78c0783069b_EOF' + cat << 'GH_AW_PROMPT_395e274ad3496c40_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-spdd-spec-planner.md}} - GH_AW_PROMPT_42f2f78c0783069b_EOF + GH_AW_PROMPT_395e274ad3496c40_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -370,6 +383,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -466,9 +481,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_855fae6d8e715284_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_397785781d14834a_EOF' {"create_issue":{"assignees":["copilot"],"expires":72,"labels":["spdd","specifications","planning","automation"],"max":1,"title_prefix":"[spdd] "},"create_report_incomplete_issue":{},"max_bot_mentions":1,"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_855fae6d8e715284_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_397785781d14834a_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -666,11 +681,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_176a7cc00de3f3bc_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5f573f2e9bccb389_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -692,10 +707,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_176a7cc00de3f3bc_EOF + GH_AW_MCP_CONFIG_5f573f2e9bccb389_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -918,6 +939,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -951,6 +981,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1369,6 +1401,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Daily SPDD Spec Planner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-spdd-spec-planner.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/daily-spdd-spec-planner.md b/.github/workflows/daily-spdd-spec-planner.md index 4361f6ee8d4..ae82d787d2d 100644 --- a/.github/workflows/daily-spdd-spec-planner.md +++ b/.github/workflows/daily-spdd-spec-planner.md @@ -22,6 +22,7 @@ imports: labels: [spdd, specifications, planning, automation] assignees: [copilot] + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -63,6 +64,7 @@ safe-outputs: timeout-minutes: 20 features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-subagent-optimizer.lock.yml b/.github/workflows/daily-subagent-optimizer.lock.yml index 1a886d798ac..b3d04c556ab 100644 --- a/.github/workflows/daily-subagent-optimizer.lock.yml +++ b/.github/workflows/daily-subagent-optimizer.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"347ff636d58c7fc6f84c126bbff5c091fa2d87f6b169339bd8a4763e8e2cb217","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c9db21b81c900b23c6b6ca0d624ad4260beeed5efff5de327c708daf240b55e7","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,12 +27,15 @@ # Resolved workflow manifest: # Imports: # - shared/meta-analysis-base.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -77,6 +80,13 @@ concurrency: run-name: "Daily Sub-Agent Optimizer" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -110,6 +120,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -191,22 +203,22 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_dd717518fdae5abf_EOF' + cat << 'GH_AW_PROMPT_6d12b4dd8477054e_EOF' - GH_AW_PROMPT_dd717518fdae5abf_EOF + GH_AW_PROMPT_6d12b4dd8477054e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_dd717518fdae5abf_EOF' + cat << 'GH_AW_PROMPT_6d12b4dd8477054e_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_dd717518fdae5abf_EOF + GH_AW_PROMPT_6d12b4dd8477054e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_dd717518fdae5abf_EOF' + cat << 'GH_AW_PROMPT_6d12b4dd8477054e_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -235,17 +247,18 @@ jobs: {{/if}} - GH_AW_PROMPT_dd717518fdae5abf_EOF + GH_AW_PROMPT_6d12b4dd8477054e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_dd717518fdae5abf_EOF' + cat << 'GH_AW_PROMPT_6d12b4dd8477054e_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-subagent-optimizer.md}} - GH_AW_PROMPT_dd717518fdae5abf_EOF + GH_AW_PROMPT_6d12b4dd8477054e_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -383,6 +396,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -535,9 +550,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d2116302cba7189b_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_8abc7b59f1f2c08a_EOF' {"create_issue":{"close_older_issues":true,"expires":168,"labels":["automation","optimization","prompt-quality"],"max":1,"title_prefix":"[subagent-optimizer] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_d2116302cba7189b_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_8abc7b59f1f2c08a_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -736,10 +751,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_7ff32974c9cd5644_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_93323eed8e52c689_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -779,10 +794,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_7ff32974c9cd5644_EOF + GH_AW_MCP_CONFIG_93323eed8e52c689_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1043,6 +1064,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1074,6 +1104,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1488,6 +1520,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Daily Sub-Agent Optimizer" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/daily-subagent-optimizer.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/daily-subagent-optimizer.md b/.github/workflows/daily-subagent-optimizer.md index 58c2d681b03..ce471a6be55 100644 --- a/.github/workflows/daily-subagent-optimizer.md +++ b/.github/workflows/daily-subagent-optimizer.md @@ -45,6 +45,8 @@ imports: with: toolsets: [default, repos, actions] - shared/reporting.md + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-syntax-error-quality.lock.yml b/.github/workflows/daily-syntax-error-quality.lock.yml index 87581a262d3..6b3422ad0a2 100644 --- a/.github/workflows/daily-syntax-error-quality.lock.yml +++ b/.github/workflows/daily-syntax-error-quality.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"42c3ac70f8caee119d8405ce3ddbf2db614b749ebfb61887dcbc0d520e5b6168","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"efe5c4fdc40b49efb30229ae1b5b46ffc26b86ccc80eb4d0e1bc81fdf6054f51","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -190,20 +190,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_9d57e41cc36f359c_EOF' + cat << 'GH_AW_PROMPT_4a02b6b0e3db2111_EOF' - GH_AW_PROMPT_9d57e41cc36f359c_EOF + GH_AW_PROMPT_4a02b6b0e3db2111_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_9d57e41cc36f359c_EOF' + cat << 'GH_AW_PROMPT_4a02b6b0e3db2111_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_9d57e41cc36f359c_EOF + GH_AW_PROMPT_4a02b6b0e3db2111_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_9d57e41cc36f359c_EOF' + cat << 'GH_AW_PROMPT_4a02b6b0e3db2111_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -232,15 +232,15 @@ jobs: {{/if}} - GH_AW_PROMPT_9d57e41cc36f359c_EOF + GH_AW_PROMPT_4a02b6b0e3db2111_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_9d57e41cc36f359c_EOF' + cat << 'GH_AW_PROMPT_4a02b6b0e3db2111_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-syntax-error-quality.md}} - GH_AW_PROMPT_9d57e41cc36f359c_EOF + GH_AW_PROMPT_4a02b6b0e3db2111_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -464,9 +464,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_5528ef08522c6722_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_9f68bb4096e02ece_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[syntax-error-quality] "},"create_issue":{"close_older_issues":true,"expires":72,"labels":["dx","error-messages","automated-analysis"],"max":1,"title_prefix":"[syntax-error-quality] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_5528ef08522c6722_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_9f68bb4096e02ece_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -698,7 +698,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_484ba26b72f8fd06_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_a7023c7ba71327d4_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -745,7 +745,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_484ba26b72f8fd06_EOF + GH_AW_MCP_CONFIG_a7023c7ba71327d4_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-syntax-error-quality.md b/.github/workflows/daily-syntax-error-quality.md index ca8553e09b8..4e667909a5f 100644 --- a/.github/workflows/daily-syntax-error-quality.md +++ b/.github/workflows/daily-syntax-error-quality.md @@ -51,8 +51,10 @@ imports: with: title-prefix: "[syntax-error-quality] " expires: 3d + - shared/observability-otlp.md features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-team-evolution-insights.lock.yml b/.github/workflows/daily-team-evolution-insights.lock.yml index a40e776a113..12143e39e66 100644 --- a/.github/workflows/daily-team-evolution-insights.lock.yml +++ b/.github/workflows/daily-team-evolution-insights.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"4a9d49e9717601a3204bc22ced2ecda031a78e0997be1e36df9498a350100686","agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d5f9f62b2c8c8a13eca25fbec519698d914d7a100953a3db76d3b84e5f299f3c","agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -197,20 +197,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_da76ab4822bf9782_EOF' + cat << 'GH_AW_PROMPT_b4ce6af8c995199a_EOF' - GH_AW_PROMPT_da76ab4822bf9782_EOF + GH_AW_PROMPT_b4ce6af8c995199a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_da76ab4822bf9782_EOF' + cat << 'GH_AW_PROMPT_b4ce6af8c995199a_EOF' Tools: create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_da76ab4822bf9782_EOF + GH_AW_PROMPT_b4ce6af8c995199a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_da76ab4822bf9782_EOF' + cat << 'GH_AW_PROMPT_b4ce6af8c995199a_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -239,15 +239,15 @@ jobs: {{/if}} - GH_AW_PROMPT_da76ab4822bf9782_EOF + GH_AW_PROMPT_b4ce6af8c995199a_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_da76ab4822bf9782_EOF' + cat << 'GH_AW_PROMPT_b4ce6af8c995199a_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-team-evolution-insights.md}} - GH_AW_PROMPT_da76ab4822bf9782_EOF + GH_AW_PROMPT_b4ce6af8c995199a_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -458,9 +458,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ee0877b5051e6398_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_6ee1f08312db5b7c_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[daily-team-evolution] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_ee0877b5051e6398_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_6ee1f08312db5b7c_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -654,7 +654,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_7ba79151998ddace_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c3df23a86be2d390_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -700,7 +700,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_7ba79151998ddace_EOF + GH_AW_MCP_CONFIG_c3df23a86be2d390_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-team-evolution-insights.md b/.github/workflows/daily-team-evolution-insights.md index bc4cdbaa679..8ebe7383b56 100644 --- a/.github/workflows/daily-team-evolution-insights.md +++ b/.github/workflows/daily-team-evolution-insights.md @@ -29,6 +29,8 @@ imports: with: title-prefix: "[daily-team-evolution] " expires: 1d + + - shared/observability-otlp.md --- # Daily Team Evolution Insights diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 07e39fda6f8..8d563490c6f 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a1b4906638891c37f97cff781853bc3c3c47b74c60be2d70ac9a32a8758914f4","stop_time":"2026-02-09 04:24:39","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f1f5bbeebec4003b266f3f5dd7b70477b093a6d334b90720c27fa74dae3917a4","stop_time":"2026-02-09 04:24:39","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -207,20 +207,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_2ad6e991fcd00de3_EOF' + cat << 'GH_AW_PROMPT_9d7528a1c934d442_EOF' - GH_AW_PROMPT_2ad6e991fcd00de3_EOF + GH_AW_PROMPT_9d7528a1c934d442_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_2ad6e991fcd00de3_EOF' + cat << 'GH_AW_PROMPT_9d7528a1c934d442_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_2ad6e991fcd00de3_EOF + GH_AW_PROMPT_9d7528a1c934d442_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_2ad6e991fcd00de3_EOF' + cat << 'GH_AW_PROMPT_9d7528a1c934d442_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -249,16 +249,16 @@ jobs: {{/if}} - GH_AW_PROMPT_2ad6e991fcd00de3_EOF + GH_AW_PROMPT_9d7528a1c934d442_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_2ad6e991fcd00de3_EOF' + cat << 'GH_AW_PROMPT_9d7528a1c934d442_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/shared/editorial.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-team-status.md}} - GH_AW_PROMPT_2ad6e991fcd00de3_EOF + GH_AW_PROMPT_9d7528a1c934d442_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -468,9 +468,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_0539be9f6ec8983d_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c31a9a16e95e9166_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[team-status] "},"create_issue":{"expires":24,"labels":["automation","daily-report"],"max":1,"title_prefix":"[team-status] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_0539be9f6ec8983d_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_c31a9a16e95e9166_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -702,7 +702,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b3372858c342009e_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_af46d095ca185e81_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -749,7 +749,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_b3372858c342009e_EOF + GH_AW_MCP_CONFIG_af46d095ca185e81_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-team-status.md b/.github/workflows/daily-team-status.md index 1bfc01f0177..d0ffe678e3d 100644 --- a/.github/workflows/daily-team-status.md +++ b/.github/workflows/daily-team-status.md @@ -17,6 +17,7 @@ imports: with: title-prefix: "[team-status] " expires: 1d + - shared/observability-otlp.md safe-outputs: create-issue: expires: 1d @@ -33,6 +34,7 @@ tools: cli-proxy: true github: null + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/daily-token-consumption-report.lock.yml b/.github/workflows/daily-token-consumption-report.lock.yml index e02b4bc012c..9702bf963aa 100644 --- a/.github/workflows/daily-token-consumption-report.lock.yml +++ b/.github/workflows/daily-token-consumption-report.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"284e7dccc0d83300068db2dff53d7b16f88a921fbb7b0a2ee1090a6093e66e51","strict":true,"agent_id":"claude"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"bfda7113fa00f993cc248a2a9199f2f53135057eb7f11ab8c04f68a2c77a1b4f","strict":true,"agent_id":"claude"} # gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN","SENTRY_ACCESS_TOKEN","SENTRY_OPENAI_API_KEY"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -200,20 +200,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_d52ca919c5c7ce90_EOF' + cat << 'GH_AW_PROMPT_38ca86cb7a31df4e_EOF' - GH_AW_PROMPT_d52ca919c5c7ce90_EOF + GH_AW_PROMPT_38ca86cb7a31df4e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_d52ca919c5c7ce90_EOF' + cat << 'GH_AW_PROMPT_38ca86cb7a31df4e_EOF' Tools: create_issue, create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_d52ca919c5c7ce90_EOF + GH_AW_PROMPT_38ca86cb7a31df4e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_d52ca919c5c7ce90_EOF' + cat << 'GH_AW_PROMPT_38ca86cb7a31df4e_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -242,16 +242,16 @@ jobs: {{/if}} - GH_AW_PROMPT_d52ca919c5c7ce90_EOF + GH_AW_PROMPT_38ca86cb7a31df4e_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_d52ca919c5c7ce90_EOF' + cat << 'GH_AW_PROMPT_38ca86cb7a31df4e_EOF' {{#runtime-import .github/workflows/shared/mcp/sentry.md}} - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/daily-token-consumption-report.md}} - GH_AW_PROMPT_d52ca919c5c7ce90_EOF + GH_AW_PROMPT_38ca86cb7a31df4e_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -465,9 +465,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_911a4a65ac50bf4c_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_04b0f84c3ea4615b_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":24,"fallback_to_issue":true,"max":1,"title_prefix":"[token-consumption] "},"create_issue":{"close_older_issues":true,"expires":24,"labels":["automation","observability","telemetry"],"max":1,"title_prefix":"[token-consumption] "},"create_report_incomplete_issue":{},"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_911a4a65ac50bf4c_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_04b0f84c3ea4615b_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -699,7 +699,7 @@ jobs: export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -e SENTRY_ACCESS_TOKEN -e SENTRY_HOST -e SENTRY_OPENAI_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_41edafd4da64235f_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_d1dd85a0fc4520bb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -781,7 +781,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_41edafd4da64235f_EOF + GH_AW_MCP_CONFIG_d1dd85a0fc4520bb_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/daily-token-consumption-report.md b/.github/workflows/daily-token-consumption-report.md index 814a089a384..524ecc468f1 100644 --- a/.github/workflows/daily-token-consumption-report.md +++ b/.github/workflows/daily-token-consumption-report.md @@ -27,6 +27,8 @@ imports: with: title-prefix: "[token-consumption] " expires: 1d + + - shared/observability-otlp.md --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/dead-code-remover.lock.yml b/.github/workflows/dead-code-remover.lock.yml index 2f8af9462d0..0a13bc13e5a 100644 --- a/.github/workflows/dead-code-remover.lock.yml +++ b/.github/workflows/dead-code-remover.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"958756b0a2c271e8810d808293d964ee6e088f38f714d31be8ef068e6eb0c8ad","strict":true,"agent_id":"copilot"} -# 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/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"447ea0d9e2ca3a42eed7709d9e7532367eec6cff8ac655e449d084fb452c1ee7","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - shared/activation-app.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/daily-pr-base.md # - shared/skip-if-issue-open.md @@ -35,6 +36,8 @@ # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -77,6 +80,13 @@ concurrency: run-name: "Dead Code Removal Agent" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -112,6 +122,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -188,24 +200,24 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_e666df1c1e357f24_EOF' + cat << 'GH_AW_PROMPT_be79ab5caa10ec16_EOF' - GH_AW_PROMPT_e666df1c1e357f24_EOF + GH_AW_PROMPT_be79ab5caa10ec16_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_e666df1c1e357f24_EOF' + cat << 'GH_AW_PROMPT_be79ab5caa10ec16_EOF' Tools: create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_e666df1c1e357f24_EOF + GH_AW_PROMPT_be79ab5caa10ec16_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_e666df1c1e357f24_EOF' + cat << 'GH_AW_PROMPT_be79ab5caa10ec16_EOF' - GH_AW_PROMPT_e666df1c1e357f24_EOF + GH_AW_PROMPT_be79ab5caa10ec16_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_e666df1c1e357f24_EOF' + cat << 'GH_AW_PROMPT_be79ab5caa10ec16_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -234,14 +246,15 @@ jobs: {{/if}} - GH_AW_PROMPT_e666df1c1e357f24_EOF + GH_AW_PROMPT_be79ab5caa10ec16_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_e666df1c1e357f24_EOF' + cat << 'GH_AW_PROMPT_be79ab5caa10ec16_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/activation-app.md}} {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/dead-code-remover.md}} - GH_AW_PROMPT_e666df1c1e357f24_EOF + GH_AW_PROMPT_be79ab5caa10ec16_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -385,6 +398,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -486,9 +501,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_8701851a654c5fee_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_2f10b5dc42f4a046_EOF' {"create_pull_request":{"expires":72,"labels":["chore","dead-code"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"reviewers":["copilot"],"title_prefix":"[dead-code] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_8701851a654c5fee_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_2f10b5dc42f4a046_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -691,11 +706,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_97649df6449186fa_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_01b984f9ddbd8917_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -717,10 +732,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_97649df6449186fa_EOF + GH_AW_MCP_CONFIG_01b984f9ddbd8917_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -921,6 +942,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -954,6 +984,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1418,6 +1450,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dead Code Removal Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dead-code-remover.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dead-code-remover.md b/.github/workflows/dead-code-remover.md index d520e7a5926..158c6539ee9 100644 --- a/.github/workflows/dead-code-remover.md +++ b/.github/workflows/dead-code-remover.md @@ -19,6 +19,7 @@ imports: expires: "3d" labels: [chore, dead-code] reviewers: [copilot] + - shared/observability-otlp.md network: allowed: - defaults @@ -38,6 +39,7 @@ features: steps: - name: Install deadcode analyzer run: go install golang.org/x/tools/cmd/deadcode@latest + --- # Dead Code Removal Agent diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 7cd2c5cc355..d44b5d47d48 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"61961a358386061bda72347747d7231f2459d4f4687aa9a06978ed39184908ef","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"fb9d1be57bf8cd5c787f27964c08a3d3a510c8a74b67642fe48cf1129a1e4c7a","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -29,6 +29,7 @@ # - shared/discussions-data-fetch.md # - shared/jqschema.md # - shared/meta-analysis-base.md +# - shared/observability-otlp.md # - shared/reporting.md # - shared/weekly-issues-data-fetch.md # @@ -36,6 +37,8 @@ # - ANTHROPIC_API_KEY # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -80,6 +83,13 @@ concurrency: run-name: "DeepReport - Intelligence Gathering Agent" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -114,6 +124,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -230,9 +242,9 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_d8c88fdc07fb2faa_EOF' + cat << 'GH_AW_PROMPT_5ac9c18a60775687_EOF' - GH_AW_PROMPT_d8c88fdc07fb2faa_EOF + GH_AW_PROMPT_5ac9c18a60775687_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" @@ -240,13 +252,13 @@ jobs: cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_d8c88fdc07fb2faa_EOF' + cat << 'GH_AW_PROMPT_5ac9c18a60775687_EOF' Tools: create_issue(max:7), create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_d8c88fdc07fb2faa_EOF + GH_AW_PROMPT_5ac9c18a60775687_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_d8c88fdc07fb2faa_EOF' + cat << 'GH_AW_PROMPT_5ac9c18a60775687_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -275,9 +287,9 @@ jobs: {{/if}} - GH_AW_PROMPT_d8c88fdc07fb2faa_EOF + GH_AW_PROMPT_5ac9c18a60775687_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_d8c88fdc07fb2faa_EOF' + cat << 'GH_AW_PROMPT_5ac9c18a60775687_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. @@ -286,9 +298,10 @@ jobs: {{#runtime-import .github/workflows/shared/discussions-data-fetch.md}} {{#runtime-import .github/workflows/shared/weekly-issues-data-fetch.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/deep-report.md}} - GH_AW_PROMPT_d8c88fdc07fb2faa_EOF + GH_AW_PROMPT_5ac9c18a60775687_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -438,6 +451,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -622,9 +637,9 @@ jobs: mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs/upload-artifacts" - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ef506d295bfdef06_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ee5a05a505aa1011_EOF' {"create_discussion":{"category":"reports","close_older_discussions":true,"expires":168,"fallback_to_issue":true,"max":1},"create_issue":{"expires":48,"group":true,"labels":["automation","improvement","quick-win","cookie"],"max":7,"title_prefix":"[deep-report] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":1048576,"max_patch_size":10240}]},"report_incomplete":{},"upload_artifact":{"max-size-bytes":104857600,"max-uploads":1,"retention-days":30}} - GH_AW_SAFE_OUTPUTS_CONFIG_ef506d295bfdef06_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_ee5a05a505aa1011_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -850,10 +865,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_ec90df34afbf1ccd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_5657b326b0fda232_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -893,10 +908,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_ec90df34afbf1ccd_EOF + GH_AW_MCP_CONFIG_5657b326b0fda232_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1157,6 +1178,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1212,6 +1242,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1814,6 +1846,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "DeepReport - Intelligence Gathering Agent" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deep-report.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/deep-report.md b/.github/workflows/deep-report.md index 297bab765c0..95430fedddd 100644 --- a/.github/workflows/deep-report.md +++ b/.github/workflows/deep-report.md @@ -76,6 +76,8 @@ imports: - shared/weekly-issues-data-fetch.md - shared/reporting.md + + - shared/observability-otlp.md --- # DeepReport - Intelligence Gathering Agent diff --git a/.github/workflows/delight.lock.yml b/.github/workflows/delight.lock.yml index 9a54eeeef8f..9c797b69f77 100644 --- a/.github/workflows/delight.lock.yml +++ b/.github/workflows/delight.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"c9c4220b106989e0e1c36abbade0f5a72fd628f3db3cd2b57bfcdf696e4726eb","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cc616a182b44a9e7dde025293925a9ef1dca0737a8c5ab71a4085b047036e11c","strict":true,"agent_id":"copilot"} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) @@ -193,21 +193,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_2cb35292dc51b12c_EOF' + cat << 'GH_AW_PROMPT_1841c91a506db02c_EOF' - GH_AW_PROMPT_2cb35292dc51b12c_EOF + GH_AW_PROMPT_1841c91a506db02c_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_2cb35292dc51b12c_EOF' + cat << 'GH_AW_PROMPT_1841c91a506db02c_EOF' Tools: create_issue(max:2), create_discussion, missing_tool, missing_data, noop - GH_AW_PROMPT_2cb35292dc51b12c_EOF + GH_AW_PROMPT_1841c91a506db02c_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_2cb35292dc51b12c_EOF' + cat << 'GH_AW_PROMPT_1841c91a506db02c_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -236,15 +236,15 @@ jobs: {{/if}} - GH_AW_PROMPT_2cb35292dc51b12c_EOF + GH_AW_PROMPT_1841c91a506db02c_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_2cb35292dc51b12c_EOF' + cat << 'GH_AW_PROMPT_1841c91a506db02c_EOF' - {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/observability-otlp.md}} + {{#runtime-import .github/workflows/shared/reporting.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/delight.md}} - GH_AW_PROMPT_2cb35292dc51b12c_EOF + GH_AW_PROMPT_1841c91a506db02c_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -481,9 +481,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_86f082791d8d7893_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_1790619075963449_EOF' {"create_discussion":{"category":"audits","close_older_discussions":true,"expires":72,"fallback_to_issue":true,"max":1,"title_prefix":"[delight] "},"create_issue":{"expires":48,"group":true,"labels":["delight","cookie"],"max":2},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_repo_memory":{"memories":[{"dir":"/tmp/gh-aw/repo-memory/default","id":"default","max_file_count":100,"max_file_size":102400,"max_patch_size":10240}]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_86f082791d8d7893_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_1790619075963449_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -712,7 +712,7 @@ jobs: mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_a200a8292a1d70f5_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_f46f4c9f116a5d87_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -743,7 +743,7 @@ jobs: } } } - GH_AW_MCP_CONFIG_a200a8292a1d70f5_EOF + GH_AW_MCP_CONFIG_f46f4c9f116a5d87_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true diff --git a/.github/workflows/delight.md b/.github/workflows/delight.md index e27d56b8247..3b63c8b485a 100644 --- a/.github/workflows/delight.md +++ b/.github/workflows/delight.md @@ -60,6 +60,7 @@ imports: branch-name: "memory/delight" description: "Track delight findings and historical patterns" + - shared/observability-otlp.md pre-agent-steps: - name: Sample files and load memory run: | @@ -76,6 +77,7 @@ pre-agent-steps: features: copilot-requests: true + --- {{#runtime-import? .github/shared-instructions.md}} diff --git a/.github/workflows/dependabot-burner.lock.yml b/.github/workflows/dependabot-burner.lock.yml index 2abb8426eda..aff5ae622a6 100644 --- a/.github/workflows/dependabot-burner.lock.yml +++ b/.github/workflows/dependabot-burner.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"fc3e661d1a93526bee9a588cf442990adc55c1be262e479b26177ae199bfd98c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"dc795fbc88d0a50ed3f59e16ef06bb7d88b1fb266bd1a09ce786e42762075b9e","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -25,12 +25,15 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -69,6 +72,13 @@ concurrency: run-name: "Dependabot Burner" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -102,6 +112,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -182,20 +194,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_429b41a82a28aa30_EOF' + cat << 'GH_AW_PROMPT_983833750a9c72b4_EOF' - GH_AW_PROMPT_429b41a82a28aa30_EOF + GH_AW_PROMPT_983833750a9c72b4_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_429b41a82a28aa30_EOF' + cat << 'GH_AW_PROMPT_983833750a9c72b4_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_429b41a82a28aa30_EOF + GH_AW_PROMPT_983833750a9c72b4_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_429b41a82a28aa30_EOF' + cat << 'GH_AW_PROMPT_983833750a9c72b4_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -224,14 +236,15 @@ jobs: {{/if}} - GH_AW_PROMPT_429b41a82a28aa30_EOF + GH_AW_PROMPT_983833750a9c72b4_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_429b41a82a28aa30_EOF' + cat << 'GH_AW_PROMPT_983833750a9c72b4_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/dependabot-burner.md}} - GH_AW_PROMPT_429b41a82a28aa30_EOF + GH_AW_PROMPT_983833750a9c72b4_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -361,6 +374,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -437,9 +452,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_2d1f16ba56e38f91_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c8601906398c8e07_EOF' {"create_issue":{"max":1,"title_prefix":"[dependabot-burner] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_2d1f16ba56e38f91_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_c8601906398c8e07_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -640,11 +655,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_8834d1766e44e1e0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_34cdca4c4e5b4490_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -682,10 +697,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_8834d1766e44e1e0_EOF + GH_AW_MCP_CONFIG_34cdca4c4e5b4490_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -873,6 +894,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -895,6 +925,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1300,6 +1332,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Burner" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-burner.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dependabot-burner.md b/.github/workflows/dependabot-burner.md index 639b952a4af..093c1d85637 100644 --- a/.github/workflows/dependabot-burner.md +++ b/.github/workflows/dependabot-burner.md @@ -13,6 +13,8 @@ safe-outputs: imports: - shared/reporting.md + + - shared/observability-otlp.md --- # Dependabot Burner diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index d470a44e282..b40074e8d6d 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"d1f3ed89dbddf32cac2701522085502186abd82f727c446a20f461941a95b70c","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"71ea74b31826592ae821702ebe48b63c7497a56186ceda9307dffad79181bb12","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,12 +26,15 @@ # # Resolved workflow manifest: # Imports: +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -69,6 +72,13 @@ concurrency: run-name: "Dependabot Dependency Checker" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: runs-on: ubuntu-slim @@ -102,6 +112,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -182,20 +194,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_4e8a698fd9d253b0_EOF' + cat << 'GH_AW_PROMPT_c1ac10349d9bf684_EOF' - GH_AW_PROMPT_4e8a698fd9d253b0_EOF + GH_AW_PROMPT_c1ac10349d9bf684_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_4e8a698fd9d253b0_EOF' + cat << 'GH_AW_PROMPT_c1ac10349d9bf684_EOF' Tools: create_issue(max:10), close_issue(max:20), missing_tool, missing_data, noop - GH_AW_PROMPT_4e8a698fd9d253b0_EOF + GH_AW_PROMPT_c1ac10349d9bf684_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_4e8a698fd9d253b0_EOF' + cat << 'GH_AW_PROMPT_c1ac10349d9bf684_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -224,14 +236,15 @@ jobs: {{/if}} - GH_AW_PROMPT_4e8a698fd9d253b0_EOF + GH_AW_PROMPT_c1ac10349d9bf684_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_4e8a698fd9d253b0_EOF' + cat << 'GH_AW_PROMPT_c1ac10349d9bf684_EOF' {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/dependabot-go-checker.md}} - GH_AW_PROMPT_4e8a698fd9d253b0_EOF + GH_AW_PROMPT_c1ac10349d9bf684_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -365,6 +378,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -441,9 +456,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_feb080726be1a142_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_d83e47a81b97dfe1_EOF' {"close_issue":{"max":20,"required_title_prefix":"[deps]","target":"*"},"create_issue":{"expires":48,"group":true,"labels":["dependencies","go","cookie"],"max":10,"title_prefix":"[deps]"},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_feb080726be1a142_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_d83e47a81b97dfe1_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -663,11 +678,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_85c53a45b265a686_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_70d051bbf6a287ee_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -705,10 +720,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_85c53a45b265a686_EOF + GH_AW_MCP_CONFIG_70d051bbf6a287ee_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -896,6 +917,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -918,6 +948,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1323,6 +1355,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Dependency Checker" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-go-checker.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dependabot-go-checker.md b/.github/workflows/dependabot-go-checker.md index 34b7ebce19d..3ac2a7d730b 100644 --- a/.github/workflows/dependabot-go-checker.md +++ b/.github/workflows/dependabot-go-checker.md @@ -43,6 +43,8 @@ tools: imports: - shared/reporting.md + + - shared/observability-otlp.md --- # Dependabot Dependency Checker diff --git a/.github/workflows/dependabot-repair.lock.yml b/.github/workflows/dependabot-repair.lock.yml index 885ddda0264..3032428cee4 100644 --- a/.github/workflows/dependabot-repair.lock.yml +++ b/.github/workflows/dependabot-repair.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"aeb9570f2463c17ff8417fd854ec8d450e04b5fee310baa6373b0f7ac7991abf","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"fad563b0d36bcea46b6c208cb897b675d0520eb8497f05193f70f2124aa109f3","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -26,11 +26,17 @@ # # Source: githubnext/dependabot-campaign/.github/workflows/dependabot-repair.md@ff91842c074b23270d3a0e26a7206a251232a374 # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -65,6 +71,13 @@ concurrency: run-name: "Dependabot Local Repair" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -105,6 +118,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -196,23 +211,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_b11b891ab1eea9e8_EOF' + cat << 'GH_AW_PROMPT_eea874c5820d76a3_EOF' - GH_AW_PROMPT_b11b891ab1eea9e8_EOF + GH_AW_PROMPT_eea874c5820d76a3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_b11b891ab1eea9e8_EOF' + cat << 'GH_AW_PROMPT_eea874c5820d76a3_EOF' Tools: add_comment(max:5), update_issue(max:5), create_pull_request, missing_tool, missing_data, noop - GH_AW_PROMPT_b11b891ab1eea9e8_EOF + GH_AW_PROMPT_eea874c5820d76a3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md" - cat << 'GH_AW_PROMPT_b11b891ab1eea9e8_EOF' + cat << 'GH_AW_PROMPT_eea874c5820d76a3_EOF' - GH_AW_PROMPT_b11b891ab1eea9e8_EOF + GH_AW_PROMPT_eea874c5820d76a3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_b11b891ab1eea9e8_EOF' + cat << 'GH_AW_PROMPT_eea874c5820d76a3_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -241,12 +256,13 @@ jobs: {{/if}} - GH_AW_PROMPT_b11b891ab1eea9e8_EOF + GH_AW_PROMPT_eea874c5820d76a3_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_b11b891ab1eea9e8_EOF' + cat << 'GH_AW_PROMPT_eea874c5820d76a3_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/dependabot-repair.md}} - GH_AW_PROMPT_b11b891ab1eea9e8_EOF + GH_AW_PROMPT_eea874c5820d76a3_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -373,6 +389,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -449,9 +467,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_a3b6f842833196af_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_b54cc9bbdbf55d2d_EOF' {"add_comment":{"max":5},"create_pull_request":{"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"]},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{},"update_issue":{"allow_body":true,"max":5}} - GH_AW_SAFE_OUTPUTS_CONFIG_a3b6f842833196af_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_b54cc9bbdbf55d2d_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -733,11 +751,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_5d1c0a75b7974983_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_7a1d51c431886ed0_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -775,10 +793,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_5d1c0a75b7974983_EOF + GH_AW_MCP_CONFIG_7a1d51c431886ed0_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -966,6 +990,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -988,6 +1021,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1453,6 +1488,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dependabot Local Repair" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dependabot-repair.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dependabot-repair.md b/.github/workflows/dependabot-repair.md index a85bd8e5221..57ad642ec45 100644 --- a/.github/workflows/dependabot-repair.md +++ b/.github/workflows/dependabot-repair.md @@ -6,6 +6,8 @@ on: permissions: read-all +imports: + - shared/observability-otlp.md tools: github: toolsets: [default] @@ -28,6 +30,7 @@ safe-outputs: noop: max: 1 source: githubnext/dependabot-campaign/.github/workflows/dependabot-repair.md@ff91842c074b23270d3a0e26a7206a251232a374 + --- # Dependabot Local Repair diff --git a/.github/workflows/deployment-incident-monitor.lock.yml b/.github/workflows/deployment-incident-monitor.lock.yml index 4515d46aaed..4f5fe01dfda 100644 --- a/.github/workflows/deployment-incident-monitor.lock.yml +++ b/.github/workflows/deployment-incident-monitor.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f0ee4f3dda1df2f191e0bb8aa1ee4a6548e965306a958cd60a43ade31fb234c9","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"aae8a504b320932fe4d376d55dc06b845b974f9d9ba74546045d8c25c9b00565","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,10 +24,16 @@ # # Monitors deployment failures and automatically creates deduplicated incident issues with root cause analysis. # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -62,6 +68,13 @@ concurrency: run-name: "Deployment Incident Monitor" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -100,6 +113,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -182,20 +197,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_ad54a4750ac92952_EOF' + cat << 'GH_AW_PROMPT_b3348f12d17fa547_EOF' - GH_AW_PROMPT_ad54a4750ac92952_EOF + GH_AW_PROMPT_b3348f12d17fa547_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_ad54a4750ac92952_EOF' + cat << 'GH_AW_PROMPT_b3348f12d17fa547_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_ad54a4750ac92952_EOF + GH_AW_PROMPT_b3348f12d17fa547_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_ad54a4750ac92952_EOF' + cat << 'GH_AW_PROMPT_b3348f12d17fa547_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -224,12 +239,13 @@ jobs: {{/if}} - GH_AW_PROMPT_ad54a4750ac92952_EOF + GH_AW_PROMPT_b3348f12d17fa547_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_ad54a4750ac92952_EOF' + cat << 'GH_AW_PROMPT_b3348f12d17fa547_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/deployment-incident-monitor.md}} - GH_AW_PROMPT_ad54a4750ac92952_EOF + GH_AW_PROMPT_b3348f12d17fa547_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -368,6 +384,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -444,9 +462,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_65d87992e337a9bd_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_ddad057e571d4079_EOF' {"create_issue":{"close_older_issues":true,"expires":168,"labels":["incident","deployment-failure"],"max":1,"title_prefix":"[Incident] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_65d87992e337a9bd_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_ddad057e571d4079_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -644,11 +662,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_f9374aabd02fc238_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_b059c4d566e8783a_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -670,10 +688,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_f9374aabd02fc238_EOF + GH_AW_MCP_CONFIG_b059c4d566e8783a_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -874,6 +898,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -896,6 +929,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1355,6 +1390,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Deployment Incident Monitor" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/deployment-incident-monitor.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/deployment-incident-monitor.md b/.github/workflows/deployment-incident-monitor.md index 11605f4d2b9..37935b37cad 100644 --- a/.github/workflows/deployment-incident-monitor.md +++ b/.github/workflows/deployment-incident-monitor.md @@ -9,6 +9,8 @@ permissions: actions: read deployments: read engine: copilot +imports: + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -22,6 +24,7 @@ safe-outputs: close-older-issues: true noop: timeout-minutes: 10 + --- # Deployment Incident Monitor diff --git a/.github/workflows/design-decision-gate.lock.yml b/.github/workflows/design-decision-gate.lock.yml index e4804594e30..73e61893c24 100644 --- a/.github/workflows/design-decision-gate.lock.yml +++ b/.github/workflows/design-decision-gate.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"02fb0aadf14abfed6ebbdc11282eb39d346335ea1e9292f3c310f39b2661353c","strict":true,"agent_id":"claude"} -# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"1a1007a7d67b94e3d2fa3334a89ad479ca600795e278bc1790dab631fe999a1e","strict":true,"agent_id":"claude"} +# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,6 +27,7 @@ # Resolved workflow manifest: # Imports: # - ../agents/adr-writer.agent.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: @@ -34,6 +35,8 @@ # - GH_AW_CI_TRIGGER_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -80,6 +83,13 @@ concurrency: run-name: "Design Decision Gate 🏗️" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -121,6 +131,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -214,23 +226,23 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF' + cat << 'GH_AW_PROMPT_26319c1ac92034df_EOF' - GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF + GH_AW_PROMPT_26319c1ac92034df_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF' + cat << 'GH_AW_PROMPT_26319c1ac92034df_EOF' Tools: add_comment(max:2), push_to_pull_request_branch, missing_tool, missing_data, noop - GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF + GH_AW_PROMPT_26319c1ac92034df_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_push_to_pr_branch.md" - cat << 'GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF' + cat << 'GH_AW_PROMPT_26319c1ac92034df_EOF' - GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF + GH_AW_PROMPT_26319c1ac92034df_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF' + cat << 'GH_AW_PROMPT_26319c1ac92034df_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -259,14 +271,15 @@ jobs: {{/if}} - GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF + GH_AW_PROMPT_26319c1ac92034df_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF' + cat << 'GH_AW_PROMPT_26319c1ac92034df_EOF' {{#runtime-import .github/agents/adr-writer.agent.md}} {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/design-decision-gate.md}} - GH_AW_PROMPT_03e8ee7c62e1ac5b_EOF + GH_AW_PROMPT_26319c1ac92034df_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -401,6 +414,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -540,9 +555,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_81f835a2786eaa86_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_c047e3b39dab91b9_EOF' {"add_comment":{"hide_older_comments":true,"max":2},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"push_to_pull_request_branch":{"allowed_files":["docs/adr/**"],"commit_title_suffix":" [design-decision-gate]","if_no_changes":"warn","ignore_missing_branch_failure":true,"max_patch_size":1024,"patch_format":"bundle","protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","CLAUDE.md","AGENTS.md"]},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_81f835a2786eaa86_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_c047e3b39dab91b9_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -746,10 +761,10 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_b4119e75df5e19fa_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_ef60619e86d99283_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "safeoutputs": { @@ -772,10 +787,16 @@ jobs: "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", - "keepaliveInterval": 60 + "keepaliveInterval": 60, + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_b4119e75df5e19fa_EOF + GH_AW_MCP_CONFIG_ef60619e86d99283_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -1062,6 +1083,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1082,6 +1112,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1540,6 +1572,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Design Decision Gate 🏗️" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/design-decision-gate.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "2.1.133" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/design-decision-gate.md b/.github/workflows/design-decision-gate.md index b30ab0660f4..228538f03c9 100644 --- a/.github/workflows/design-decision-gate.md +++ b/.github/workflows/design-decision-gate.md @@ -39,6 +39,7 @@ sandbox: imports: - ../agents/adr-writer.agent.md - shared/reporting.md + - shared/observability-otlp.md tools: cli-proxy: true github: @@ -103,6 +104,7 @@ steps: default_business_additions: $default_business_additions, requires_adr_by_default_volume: ($default_business_additions > ($threshold | tonumber)) }' > /tmp/gh-aw/agent/adr-prefetch-summary.json + --- # Design Decision Gate 🏗️ diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index 0266afd9f51..e8fa10cf789 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"87ea4048d44a01952f8fdeab77e7a4e8dcd93a45a8b337809367614a1d2d5a7e","strict":true,"agent_id":"copilot"} -# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"a4c033f9f7f779eb6d1ee8bfbc451403d5e936033a8d9b0fd0c6d9da7a91608a","strict":true,"agent_id":"copilot"} +# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-go","sha":"4a3601121dd01d1626a1e23e37211e3254c1c06c","version":"v6.4.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"docker/build-push-action","sha":"bcafcacb16a39f128d818304e6c9c0c18556b85f","version":"v7.1.0"},{"repo":"docker/setup-buildx-action","sha":"4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd","version":"v4.0.0"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -27,11 +27,14 @@ # Resolved workflow manifest: # Imports: # - shared/meta-analysis-base.md +# - shared/observability-otlp.md # - shared/reporting.md # # Secrets used: # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -72,6 +75,13 @@ concurrency: run-name: "Dev Hawk" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -111,6 +121,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -192,21 +204,21 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_390fe69b4a96f4cc_EOF' + cat << 'GH_AW_PROMPT_523dc6afa410c593_EOF' - GH_AW_PROMPT_390fe69b4a96f4cc_EOF + GH_AW_PROMPT_523dc6afa410c593_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/agentic_workflows_guide.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_390fe69b4a96f4cc_EOF' + cat << 'GH_AW_PROMPT_523dc6afa410c593_EOF' Tools: add_comment, missing_tool, missing_data, noop - GH_AW_PROMPT_390fe69b4a96f4cc_EOF + GH_AW_PROMPT_523dc6afa410c593_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_390fe69b4a96f4cc_EOF' + cat << 'GH_AW_PROMPT_523dc6afa410c593_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -235,17 +247,18 @@ jobs: {{/if}} - GH_AW_PROMPT_390fe69b4a96f4cc_EOF + GH_AW_PROMPT_523dc6afa410c593_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_390fe69b4a96f4cc_EOF' + cat << 'GH_AW_PROMPT_523dc6afa410c593_EOF' **IMPORTANT**: When analyzing agentic workflows, use the `agentic-workflows` tool to read workflow files. {{#runtime-import .github/workflows/shared/reporting.md}} + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/dev-hawk.md}} - GH_AW_PROMPT_390fe69b4a96f4cc_EOF + GH_AW_PROMPT_523dc6afa410c593_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -397,6 +410,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -531,9 +546,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_043acc271655094d_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_bc35653bf8bd9a13_EOF' {"add_comment":{"max":1,"target":"*"},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_043acc271655094d_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_bc35653bf8bd9a13_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -718,11 +733,11 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' mkdir -p /home/runner/.copilot GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node) - cat << GH_AW_MCP_CONFIG_dfb9d8e6ec0d2d26_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_c686ee5f93aa5ffd_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "agenticworkflows": { @@ -763,10 +778,16 @@ jobs: "port": $MCP_GATEWAY_PORT, "domain": "${MCP_GATEWAY_DOMAIN}", "apiKey": "${MCP_GATEWAY_API_KEY}", - "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" + "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}", + "opentelemetry": { + "endpoint": "${OTEL_EXPORTER_OTLP_ENDPOINT}", + "headers": "${OTEL_EXPORTER_OTLP_HEADERS}", + "traceId": "${GITHUB_AW_OTEL_TRACE_ID}", + "spanId": "${GITHUB_AW_OTEL_PARENT_SPAN_ID}" + } } } - GH_AW_MCP_CONFIG_dfb9d8e6ec0d2d26_EOF + GH_AW_MCP_CONFIG_c686ee5f93aa5ffd_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -985,6 +1006,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -1007,6 +1037,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1459,6 +1491,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dev Hawk" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev-hawk.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "1.0.43" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dev-hawk.md b/.github/workflows/dev-hawk.md index b78b55a260a..9f64c67e6f9 100644 --- a/.github/workflows/dev-hawk.md +++ b/.github/workflows/dev-hawk.md @@ -34,8 +34,10 @@ imports: with: toolsets: [pull_requests, actions, repos] - shared/reporting.md + - shared/observability-otlp.md features: copilot-requests: true + --- # Dev Hawk - Development Workflow Monitor diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 2edea8b4529..9753ff42f4e 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -1,5 +1,5 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"cc975ed0d58d799d184035327af359c4a3225a02a95981b5d20c04fae0f857bf","agent_id":"pi","agent_model":"copilot/claude-sonnet-4-20250514"} -# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"5b756a1dc53a828105ac79a0d3777e19eb27d8f303b70b3ee0d27a600517e396","agent_id":"pi","agent_model":"copilot/claude-sonnet-4-20250514"} +# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_ENDPOINT","GH_AW_OTEL_HEADERS","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41","digest":"sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.41@sha256:cb2b565d070116d4b67e355775340528b5a2c3cb18b2c9049638bcc2df681770"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41","digest":"sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.41@sha256:fadd0de387209f69a9a7a1b8722bb5e7fdfb80ba9749a5c60f0e4cd7582a74d0"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41","digest":"sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.41@sha256:62171f2fa508667b8b0a9e096f826983f312e3da0ce894f80c0f83a875af60fe"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41","digest":"sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.41@sha256:1260445d25968dbf3ae70143964177a0e5914cf2ce07a6117f7d3caec6c3e3c4"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]} # ___ _ _ # / _ \ | | (_) # | |_| | __ _ ___ _ __ | |_ _ ___ @@ -24,10 +24,16 @@ # # Daily status report for gh-aw project # +# Resolved workflow manifest: +# Imports: +# - shared/observability-otlp.md +# # Secrets used: # - COPILOT_GITHUB_TOKEN # - GH_AW_GITHUB_MCP_SERVER_TOKEN # - GH_AW_GITHUB_TOKEN +# - GH_AW_OTEL_ENDPOINT +# - GH_AW_OTEL_HEADERS # - GITHUB_TOKEN # # Custom actions used: @@ -80,6 +86,13 @@ concurrency: run-name: "Dev" +env: + OTEL_EXPORTER_OTLP_ENDPOINT: ${{ secrets.GH_AW_OTEL_ENDPOINT }} + OTEL_SERVICE_NAME: gh-aw + COPILOT_OTEL_FILE_EXPORTER_PATH: /tmp/gh-aw/copilot-otel.jsonl + OTEL_EXPORTER_OTLP_HEADERS: ${{ secrets.GH_AW_OTEL_HEADERS }} + GH_AW_OTLP_ENDPOINTS: '[{"url":"${{ secrets.GH_AW_OTEL_ENDPOINT }}","headers":"${{ secrets.GH_AW_OTEL_HEADERS }}"}]' + jobs: activation: needs: pre_activation @@ -124,6 +137,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dev" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.72.1" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Generate agentic run info id: generate_aw_info env: @@ -240,20 +255,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_820d0bab622491f3_EOF' + cat << 'GH_AW_PROMPT_b88579a1f7017635_EOF' - GH_AW_PROMPT_820d0bab622491f3_EOF + GH_AW_PROMPT_b88579a1f7017635_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md" cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md" cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md" cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md" - cat << 'GH_AW_PROMPT_820d0bab622491f3_EOF' + cat << 'GH_AW_PROMPT_b88579a1f7017635_EOF' Tools: create_issue, missing_tool, missing_data, noop - GH_AW_PROMPT_820d0bab622491f3_EOF + GH_AW_PROMPT_b88579a1f7017635_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_820d0bab622491f3_EOF' + cat << 'GH_AW_PROMPT_b88579a1f7017635_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -282,13 +297,14 @@ jobs: {{/if}} - GH_AW_PROMPT_820d0bab622491f3_EOF + GH_AW_PROMPT_b88579a1f7017635_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_820d0bab622491f3_EOF' + cat << 'GH_AW_PROMPT_b88579a1f7017635_EOF' + {{#runtime-import .github/workflows/shared/observability-otlp.md}} {{#runtime-import .github/workflows/shared/noop-reminder.md}} {{#runtime-import .github/workflows/dev.md}} - GH_AW_PROMPT_820d0bab622491f3_EOF + GH_AW_PROMPT_b88579a1f7017635_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -414,6 +430,8 @@ jobs: echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json" } >> "$GITHUB_OUTPUT" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: @@ -493,9 +511,9 @@ jobs: mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs" mkdir -p /tmp/gh-aw/safeoutputs mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs - cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_96fe11ece7634061_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_b0544374a465e7c6_EOF' {"create_issue":{"expires":168,"max":1,"title_prefix":"[Daily Report] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}} - GH_AW_SAFE_OUTPUTS_CONFIG_96fe11ece7634061_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_b0544374a465e7c6_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -693,7 +711,7 @@ jobs: MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0') MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0') DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0') - export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' + export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -e GITHUB_AW_OTEL_TRACE_ID -e GITHUB_AW_OTEL_PARENT_SPAN_ID -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6' - name: Mount MCP servers as CLIs id: mount-mcp-clis @@ -871,6 +889,15 @@ jobs: setupGlobals(core, github, context, exec, io, getOctokit); const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs'); await main(); + - name: Generate observability summary + if: always() + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); + setupGlobals(core, github, context, exec, io, getOctokit); + const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_observability_summary.cjs'); + await main(core); - name: Write agent output placeholder if missing if: always() run: | @@ -893,6 +920,8 @@ jobs: /tmp/gh-aw/pre-agent-audit.txt /tmp/gh-aw/agent/ /tmp/gh-aw/github_rate_limits.jsonl + /tmp/gh-aw/otel.jsonl + /tmp/gh-aw/copilot-otel.jsonl /tmp/gh-aw/safeoutputs.jsonl /tmp/gh-aw/agent_output.json /tmp/gh-aw/aw-*.patch @@ -1340,6 +1369,8 @@ jobs: GH_AW_SETUP_WORKFLOW_NAME: "Dev" GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/dev.lock.yml@${{ github.ref }} GH_AW_INFO_VERSION: "0.72.1" + - name: Mask OTLP telemetry headers + run: bash "${RUNNER_TEMP}/gh-aw/actions/mask_otlp_headers.sh" - name: Download agent output artifact id: download-agent-output continue-on-error: true diff --git a/.github/workflows/dev.md b/.github/workflows/dev.md index 4c988e103af..95b50c33127 100644 --- a/.github/workflows/dev.md +++ b/.github/workflows/dev.md @@ -22,10 +22,13 @@ safe-outputs: expires: 7d title-prefix: "[Daily Report] " +imports: + - shared/observability-otlp.md tools: github: mode: gh-proxy cli-proxy: true + ---

    R!3Xb^8c|>tVnyBj5iMy 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�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