Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/aw/actions-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,11 @@
"digest": "sha256:cb928eb62d9139a013c2d278dab19af232d35a2d83dca71a3d98eb431f786243",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.38@sha256:cb928eb62d9139a013c2d278dab19af232d35a2d83dca71a3d98eb431f786243"
},
"ghcr.io/github/gh-aw-firewall/agent:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.39",
"digest": "sha256:2785c26d60733a250ffb63f2e7b17a2e40febb3faa9a17974bc71df03345cfc4",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.39@sha256:2785c26d60733a250ffb63f2e7b17a2e40febb3faa9a17974bc71df03345cfc4"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.37": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.37",
"digest": "sha256:fc2970aadaeae05993e76697d29f03dc8bfb9248ff87a8f3d8b0975485a4b317",
Expand All @@ -195,6 +200,11 @@
"digest": "sha256:cd6145620d96acee46e1ede25180a13aa36002467e663db0caa453a8bc8eb60c",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.38@sha256:cd6145620d96acee46e1ede25180a13aa36002467e663db0caa453a8bc8eb60c"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.39",
"digest": "sha256:85836aeaed2a75358daa9db9df631a99de6b35cb7188adc332c63d4bd1418270",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.39@sha256:85836aeaed2a75358daa9db9df631a99de6b35cb7188adc332c63d4bd1418270"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.37": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.37",
"digest": "sha256:1d5300d9b08e1c4f2ad1830860656a0656383a83280058f17e805a7c3ecda203",
Expand All @@ -205,6 +215,11 @@
"digest": "sha256:c30c5319da37505d42f95cb3faa2cfa55e794ccb5cc805dbd9201410d1ac2a3e",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.38@sha256:c30c5319da37505d42f95cb3faa2cfa55e794ccb5cc805dbd9201410d1ac2a3e"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.39",
"digest": "sha256:96122dd273b3fc312af9184c8def503ffb565426102c07743588c4cebbe58911",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.39@sha256:96122dd273b3fc312af9184c8def503ffb565426102c07743588c4cebbe58911"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.37": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.37",
"digest": "sha256:5abc51995e5901c5d1daeefc957301ee409980e2e607391ec22c06cb2513327b",
Expand All @@ -215,11 +230,21 @@
"digest": "sha256:6c19094d95aad5f9f128ad5e583f0f2b894b158aa66c3b86dd9bcc90970a2917",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.38@sha256:6c19094d95aad5f9f128ad5e583f0f2b894b158aa66c3b86dd9bcc90970a2917"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.39",
"digest": "sha256:cd718a283a2f85f18839d335a571b99eb274739b9e5d939c5c2b23a85f6c0ffd",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.39@sha256:cd718a283a2f85f18839d335a571b99eb274739b9e5d939c5c2b23a85f6c0ffd"
},
"ghcr.io/github/gh-aw-mcpg:v0.4.3": {
"image": "ghcr.io/github/gh-aw-mcpg:v0.4.3",
"digest": "sha256:3c744710ea275cd5ee65db92a1099e0d980754bd9fafda9ce67704c67004dc83",
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.4.3@sha256:3c744710ea275cd5ee65db92a1099e0d980754bd9fafda9ce67704c67004dc83"
},
"ghcr.io/github/gh-aw-mcpg:v0.4.4": {
"image": "ghcr.io/github/gh-aw-mcpg:v0.4.4",
"digest": "sha256:f03b45ccd23656f2f90ae8a400a060cca751c0ef05afcb2cf69c9ddfbc395521",
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.4.4@sha256:f03b45ccd23656f2f90ae8a400a060cca751c0ef05afcb2cf69c9ddfbc395521"
},
"ghcr.io/github/gh-aw-node": {
"image": "ghcr.io/github/gh-aw-node",
"digest": "sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b",
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/ab-testing-advisor.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/ace-editor.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/agent-performance-analyzer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/agent-persona-explorer.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/agentic-token-audit.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/agentic-token-optimizer.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/agentic-token-trend-audit.lock.yml

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions .github/workflows/ai-moderator.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/api-consumption-report.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/approach-validator.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/archie.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/architecture-guardian.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/artifacts-summary.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/audit-workflows.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/auto-triage-issues.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/avenger.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/aw-failure-investigator.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/blog-auditor.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/bot-detection.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/brave.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/breaking-change-checker.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/changeset.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/chaos-pr-bundle-fuzzer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/ci-coach.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/ci-doctor.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/claude-code-user-docs-review.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/cli-consistency-checker.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/cli-version-checker.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/cloclo.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/code-scanning-fixer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/code-simplifier.lock.yml

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions .github/workflows/codex-github-remote-mcp-test.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/commit-changes-analyzer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/constraint-solving-potd.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/contribution-check.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/copilot-agent-analysis.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/copilot-centralization-drilldown.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/copilot-centralization-optimizer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/copilot-cli-deep-research.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/copilot-opt.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/copilot-pr-merged-report.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/copilot-pr-nlp-analysis.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/copilot-pr-prompt-analysis.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/copilot-session-insights.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/craft.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-agent-of-the-day-blog-writer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-agentrx-trace-optimizer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-ambient-context-optimizer.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-architecture-diagram.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-assign-issue-to-user.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-aw-cross-repo-compile-check.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-awf-spec-compiler-surfacing.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-byok-ollama-test.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-cache-strategy-analyzer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-caveman-optimizer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-choice-test.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-cli-performance.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-cli-tools-tester.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-code-metrics.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-community-attribution.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-compiler-quality.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-compiler-threat-spec-optimizer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-credit-limit-test.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-doc-healer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-doc-updater.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-elixir-credo-snippet-audit.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-evals-report.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-experiment-report.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-fact.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-file-diet.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-firewall-report.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-formal-spec-verifier.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-function-namer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-geo-optimizer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-hippo-learn.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-issues-report.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-malicious-code-scan.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-max-ai-credits-test.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-mcp-concurrency-analysis.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-model-inventory.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-model-resolution.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-multi-device-docs-tester.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-news.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-observability-report.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-performance-summary.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-regulatory.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-reliability-review.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-rendering-scripts-verifier.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-repo-chronicle.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-safe-output-integrator.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-safe-output-optimizer.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-safe-outputs-conformance.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-safeoutputs-git-simulator.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-secrets-analysis.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-security-observability.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-security-red-team.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-semgrep-scan.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-sentrux-report.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-skill-optimizer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-spdd-spec-planner.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-squid-image-scan.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-syntax-error-quality.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-team-evolution-insights.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-team-status.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-testify-uber-super-expert.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/daily-token-consumption-report.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/daily-vulnhunter-scan.lock.yml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/daily-workflow-updater.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/daily-yamllint-fixer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/dataflow-pr-discussion-dataset.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/dead-code-remover.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/deep-report.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/deepsec-security-scan.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/delight.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/dependabot-burner.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/dependabot-go-checker.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/deployment-incident-monitor.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/design-decision-gate.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/designer-drift-audit.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/detection-analysis-report.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/dev-hawk.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/dev.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/developer-docs-consolidator.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/dictation-prompt.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/discussion-task-miner.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/docs-noob-tester.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/draft-pr-cleanup.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/duplicate-code-detector.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/eslint-miner.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/eslint-monster.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/eslint-refiner.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/example-failure-category-filter.lock.yml

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions .github/workflows/example-permissions-warning.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/example-workflow-analyzer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/firewall-escape.lock.yml

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions .github/workflows/firewall.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/functional-pragmatist.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/github-mcp-structural-analysis.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/github-mcp-tools-report.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/github-remote-mcp-auth-test.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/glossary-maintainer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/go-fan.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/go-logger.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/go-pattern-detector.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/gpclean.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/grumpy-reviewer.lock.yml

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions .github/workflows/hippo-embed.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/hourly-ci-cleaner.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/impeccable-skills-reviewer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/instructions-janitor.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/issue-arborist.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/issue-monster.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/issue-triage-agent.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/jsweep.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/layout-spec-maintainer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/lint-monster.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/linter-miner.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/lockfile-stats.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/mattpocock-skills-reviewer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/mcp-inspector.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/mergefest.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/metrics-collector.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/necromancer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/notion-issue-summary.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/objective-impact-report.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/org-health-report.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/outcome-collector.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/pdf-summary.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/plan.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/poem-bot.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/portfolio-analyst.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/pr-code-quality-reviewer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/pr-description-caveman.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/pr-nitpick-reviewer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/pr-sous-chef.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/pr-triage-agent.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/prompt-clustering-analysis.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/python-data-charts.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/q.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/refactoring-cadence.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/refiner.lock.yml

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions .github/workflows/release.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/repo-audit-analyzer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/repo-tree-map.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/repository-quality-improver.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/research.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/ruflo-backed-task.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/safe-output-health.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/schema-consistency-checker.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/schema-feature-coverage.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/scout.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/security-compliance.lock.yml

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions .github/workflows/security-review.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/semantic-function-refactor.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/sergo.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/sighthound-security-scan.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/skillet.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/slide-deck-maintainer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-agent-all-merged.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-agent-all-none.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-agent-public-approved.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-agent-public-none.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-agent-scoped-approved.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-antigravity.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-call-workflow.lock.yml

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions .github/workflows/smoke-ci.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-claude-on-copilot.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-claude.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-codex.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-copilot-aoai-apikey.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-copilot-aoai-entra.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-copilot-arm.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-copilot-mai.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-copilot-sdk.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-copilot-small.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-copilot-sub-agents.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/smoke-copilot.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-create-cross-repo-pr.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-gemini.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-github-claude.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-multi-pr.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-opencode.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-otel-backends.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/smoke-pi.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-project.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-service-ports.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-temporary-id.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-test-tools.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-update-cross-repo-pr.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-workflow-call-with-inputs.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/smoke-workflow-call.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/spec-enforcer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/spec-extractor.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/spec-librarian.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/stale-pr-cleanup.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/stale-repo-identifier.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/static-analysis-report.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/step-name-alignment.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/sub-issue-closer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/super-linter.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/technical-doc-writer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/terminal-stylist.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/test-quality-sentinel.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/tidy.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/typist.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/ubuntu-image-analyzer.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/uk-ai-operational-resilience.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/unbloat-docs.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/update-astro.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/video-analyzer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/visual-regression-checker.lock.yml

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions .github/workflows/weekly-blog-post-writer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/weekly-editors-health-check.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/weekly-issue-summary.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/weekly-safe-outputs-spec-review.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/workflow-generator.lock.yml

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions .github/workflows/workflow-health-manager.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/workflow-normalizer.lock.yml

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions .github/workflows/workflow-skill-extractor.lock.yml

Large diffs are not rendered by default.

46 changes: 46 additions & 0 deletions docs/adr/47547-use-native-go-gh-rest-clients-for-api-calls.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# ADR-47547: Use Native go-gh REST Clients for GitHub API Calls

**Date**: 2026-07-23
**Status**: Draft
**Deciders**: Unknown

---

### Context

`gh-aw` had two gaps in its use of the go-gh library. First, update-check code called `client.Get(...)` which does not accept a context, preventing cancellation from propagating to in-flight GitHub API requests. Second, remote ref-to-SHA resolution used `gh.Exec("api", ...)` — a subprocess call — which required string-parsing of stderr to detect authentication failures and was not unit-testable without spawning a process. Both paths needed to be brought in line with the rest of the codebase, which already used `DoWithContext` and native REST clients elsewhere. The go-gh library's `api.RESTClient.DoWithContext` provides context propagation and returns structured `*api.HTTPError` values instead of unstructured text.

### Decision

We will replace all remaining `client.Get(...)` calls and `gh.Exec("api", ...)` subprocess invocations with `client.DoWithContext(ctx, http.MethodGet, path, nil, &result)` using go-gh native REST clients. Auth failures in the ref-resolution fallback chain will be detected via `errors.As(err, &httpErr)` on `*api.HTTPError` status codes (401/403) rather than stderr string matching. A shared `githubapi.ClientOptions(host, authToken)` helper will seed all `api.ClientOptions` structs with the repository-standard HTTP timeout, eliminating duplicated inline `api.ClientOptions{}` literals.

### Alternatives Considered

#### Alternative 1: Keep subprocess-based `gh.Exec("api", ...)` calls

`gh.Exec` is already a supported go-gh entrypoint and handles `GH_HOST` and authentication automatically. Retaining it avoids refactoring the fallback chain. It was rejected because: (a) subprocess output cannot carry typed error values — auth detection relied on fragile stderr substring matching, (b) context cancellation cannot propagate into a subprocess the caller does not own, and (c) the invocation is not unit-testable without spawning a real `gh` binary.

#### Alternative 2: Switch to a third-party GitHub SDK (e.g. `google/go-github`)

A dedicated GitHub SDK offers richer typed APIs for releases, commits, and repositories. It was not chosen because: (a) go-gh is already a first-party dependency and integrates transparently with `gh`'s auth credential store and enterprise `GH_HOST` routing, and (b) adding a second HTTP client library for GitHub would increase dependency surface without a clear benefit for the narrow set of endpoints used here.

### Consequences

#### Positive
- Context cancellation now reaches in-flight GitHub API calls; commands that are cancelled mid-update-check will not leave goroutines blocked on network I/O.
- Auth errors in ref resolution are detected via typed `*api.HTTPError` status codes (401/403), eliminating fragile stderr substring matching and making the fallback logic deterministic.
- The `releaseRESTClient` and `restCommitResolver` interfaces allow unit tests to inject fake clients, giving focused coverage of endpoint selection and fallback ordering without requiring real network access or a `gh` binary.
- The `githubapi.ClientOptions` helper ensures the repository-standard HTTP timeout is applied consistently across all REST client construction sites.

#### Negative
- `DoWithContext` has a longer call signature than `client.Get`; every call site now explicitly passes `ctx`, `http.MethodGet`, a `nil` body, and a response pointer, which is more verbose.
- The new `pkg/githubapi` package is a thin wrapper; callers must import an additional package for what amounts to a two-field struct constructor.

#### Neutral
- The `getLatestRelease` function signature gained a `ctx context.Context` parameter, requiring all call sites (including the `getLatestOrgReleaseFunc` variable) to be updated to pass `context.Background()` at the top level or thread a real context from callers.
- The `resolveRefToSHAWithFallbacks` function was extracted from `resolveRefToSHA` to accept injected fallback functions, which is a testability refactor with no change in observable behaviour.
- HTTP verb string literals (`"GET"`) across the codebase were normalized to `http.MethodGet`; this is a cosmetic consistency change with no runtime effect.

---

*ADR created by [adr-writer agent]. Review and finalize before changing status from Draft to Accepted.*
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ require (
github.com/charmbracelet/harmonica v0.2.0 // indirect
github.com/charmbracelet/ultraviolet v0.0.0-20260703014108-f5a850f9c2b7 // indirect
github.com/charmbracelet/x/ansi v0.11.7 // indirect
github.com/charmbracelet/x/cellbuf v0.0.15 // indirect
github.com/charmbracelet/x/exp/ordered v0.1.0 // indirect
github.com/charmbracelet/x/exp/strings v0.0.0-20251106172358-54469c29c2bc // indirect
github.com/charmbracelet/x/termios v0.1.1 // indirect
Expand Down
6 changes: 0 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,10 @@ github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex
github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q=
github.com/charmbracelet/harmonica v0.2.0 h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ=
github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao=
github.com/charmbracelet/lipgloss v1.1.1-0.20250319133953-166f707985bc h1:nFRtCfZu/zkltd2lsLUPlVNv3ej/Atod9hcdbRZtlys=
github.com/charmbracelet/lipgloss v1.1.1-0.20250319133953-166f707985bc/go.mod h1:aKC/t2arECF6rNOnaKaVU6y4t4ZeHQzqfxedE/VkVhA=
github.com/charmbracelet/ultraviolet v0.0.0-20260703014108-f5a850f9c2b7 h1:3FmWoGNWK4STvqg0O0Aeav2T7rodWJAPeF0QpH+8gFw=
github.com/charmbracelet/ultraviolet v0.0.0-20260703014108-f5a850f9c2b7/go.mod h1:f/jRa757WUmaOZrbPspXymbg/GnbF+rwe4OLsG7aXYo=
github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI=
github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ=
github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI=
github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q=
github.com/charmbracelet/x/conpty v0.1.1 h1:s1bUxjoi7EpqiXysVtC+a8RrvPPNcNvAjfi4jxsAuEs=
github.com/charmbracelet/x/conpty v0.1.1/go.mod h1:OmtR77VODEFbiTzGE9G1XiRJAga6011PIm4u5fTNZpk=
github.com/charmbracelet/x/errors v0.0.0-20240508181413-e8d8b6e2de86 h1:JSt3B+U9iqk37QUU2Rvb6DSBYRLtWqFqfxf8l5hOZUA=
Expand Down Expand Up @@ -158,8 +154,6 @@ github.com/modelcontextprotocol/go-sdk v1.6.1 h1:0zOSupjKUxPKSocPT1Wtago+mUHU2/u
github.com/modelcontextprotocol/go-sdk v1.6.1/go.mod h1:kzm3kzFL1/+AziGOE0nUs3gvPoNxMCvkxokMkuFapXQ=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc=
github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
github.com/onsi/ginkgo/v2 v2.32.0 h1:Hw7s2pVrQo/8Yz5N77qdnpHaoc+c6cC9WIV1Jce+J6E=
Expand Down
25 changes: 25 additions & 0 deletions pkg/actionpins/data/action_pins.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,11 @@
"digest": "sha256:cb928eb62d9139a013c2d278dab19af232d35a2d83dca71a3d98eb431f786243",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.38@sha256:cb928eb62d9139a013c2d278dab19af232d35a2d83dca71a3d98eb431f786243"
},
"ghcr.io/github/gh-aw-firewall/agent:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.39",
"digest": "sha256:2785c26d60733a250ffb63f2e7b17a2e40febb3faa9a17974bc71df03345cfc4",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.39@sha256:2785c26d60733a250ffb63f2e7b17a2e40febb3faa9a17974bc71df03345cfc4"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.37": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.37",
"digest": "sha256:fc2970aadaeae05993e76697d29f03dc8bfb9248ff87a8f3d8b0975485a4b317",
Expand All @@ -195,6 +200,11 @@
"digest": "sha256:cd6145620d96acee46e1ede25180a13aa36002467e663db0caa453a8bc8eb60c",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.38@sha256:cd6145620d96acee46e1ede25180a13aa36002467e663db0caa453a8bc8eb60c"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.39",
"digest": "sha256:85836aeaed2a75358daa9db9df631a99de6b35cb7188adc332c63d4bd1418270",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.39@sha256:85836aeaed2a75358daa9db9df631a99de6b35cb7188adc332c63d4bd1418270"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.37": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.37",
"digest": "sha256:1d5300d9b08e1c4f2ad1830860656a0656383a83280058f17e805a7c3ecda203",
Expand All @@ -205,6 +215,11 @@
"digest": "sha256:c30c5319da37505d42f95cb3faa2cfa55e794ccb5cc805dbd9201410d1ac2a3e",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.38@sha256:c30c5319da37505d42f95cb3faa2cfa55e794ccb5cc805dbd9201410d1ac2a3e"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.39",
"digest": "sha256:96122dd273b3fc312af9184c8def503ffb565426102c07743588c4cebbe58911",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.39@sha256:96122dd273b3fc312af9184c8def503ffb565426102c07743588c4cebbe58911"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.37": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.37",
"digest": "sha256:5abc51995e5901c5d1daeefc957301ee409980e2e607391ec22c06cb2513327b",
Expand All @@ -215,11 +230,21 @@
"digest": "sha256:6c19094d95aad5f9f128ad5e583f0f2b894b158aa66c3b86dd9bcc90970a2917",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.38@sha256:6c19094d95aad5f9f128ad5e583f0f2b894b158aa66c3b86dd9bcc90970a2917"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.39": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.39",
"digest": "sha256:cd718a283a2f85f18839d335a571b99eb274739b9e5d939c5c2b23a85f6c0ffd",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.39@sha256:cd718a283a2f85f18839d335a571b99eb274739b9e5d939c5c2b23a85f6c0ffd"
},
"ghcr.io/github/gh-aw-mcpg:v0.4.3": {
"image": "ghcr.io/github/gh-aw-mcpg:v0.4.3",
"digest": "sha256:3c744710ea275cd5ee65db92a1099e0d980754bd9fafda9ce67704c67004dc83",
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.4.3@sha256:3c744710ea275cd5ee65db92a1099e0d980754bd9fafda9ce67704c67004dc83"
},
"ghcr.io/github/gh-aw-mcpg:v0.4.4": {
"image": "ghcr.io/github/gh-aw-mcpg:v0.4.4",
"digest": "sha256:f03b45ccd23656f2f90ae8a400a060cca751c0ef05afcb2cf69c9ddfbc395521",
"pinned_image": "ghcr.io/github/gh-aw-mcpg:v0.4.4@sha256:f03b45ccd23656f2f90ae8a400a060cca751c0ef05afcb2cf69c9ddfbc395521"
},
"ghcr.io/github/gh-aw-node": {
"image": "ghcr.io/github/gh-aw-node",
"digest": "sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b",
Expand Down
3 changes: 2 additions & 1 deletion pkg/cli/copilot_billing_check.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package cli
import (
"context"
"fmt"
"net/http"
"time"

"github.com/cli/go-gh/v2/pkg/api"
Expand All @@ -27,7 +28,7 @@ func detectOrgCopilotCLIBillingWithClient(ctx context.Context, orgLogin string,
var result struct {
CLI string `json:"cli"`
}
if err := client.DoWithContext(ctx, "GET", fmt.Sprintf("orgs/%s/copilot/billing", orgLogin), nil, &result); err != nil {
if err := client.DoWithContext(ctx, http.MethodGet, fmt.Sprintf("orgs/%s/copilot/billing", orgLogin), nil, &result); err != nil {
return "", err
}
return result.CLI, nil
Expand Down
8 changes: 5 additions & 3 deletions pkg/cli/org_issue_pr_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ var orgIPLog = logger.New("cli:org_issue_pr")
var (
ghawReleaseTagCache syncutil.OnceLoader[string]

getLatestOrgReleaseFunc = getLatestRelease
getLatestOrgReleaseFunc = func(ctx context.Context, includePrereleases bool) (string, error) {
return getLatestRelease(ctx, includePrereleases)
}
)

var errEmptyGhawReleaseTag = errors.New("latest gh-aw release tag was empty")
Expand Down Expand Up @@ -53,9 +55,9 @@ func buildOrgXMLMarker(prefix, tag string) string {
// getGhawReleaseInfo returns the latest stable gh-aw release tag and its HTML URL.
// Both values are empty strings when the release cannot be determined; callers must
// handle this gracefully (e.g. omit the release link rather than failing).
func getGhawReleaseInfo() (tag, releaseURL string) {
func getGhawReleaseInfo(ctx context.Context) (tag, releaseURL string) {
tag, err := ghawReleaseTagCache.Get(func() (string, error) {
tag, err := getLatestOrgReleaseFunc(false)
tag, err := getLatestOrgReleaseFunc(ctx, false)
if err != nil {
return "", err
}
Expand Down
12 changes: 6 additions & 6 deletions pkg/cli/org_issue_pr_helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,16 @@ func TestGetGhawReleaseInfoCachesSuccessfulLookup(t *testing.T) {
})

lookups := 0
getLatestOrgReleaseFunc = func(includePrereleases bool) (string, error) {
getLatestOrgReleaseFunc = func(_ context.Context, includePrereleases bool) (string, error) {
lookups++
return "v1.2.3", nil
}

tag, releaseURL := getGhawReleaseInfo()
tag, releaseURL := getGhawReleaseInfo(context.Background())
require.Equal(t, "v1.2.3", tag)
require.Equal(t, "https://github.com/github/gh-aw/releases/tag/v1.2.3", releaseURL)

tag, releaseURL = getGhawReleaseInfo()
tag, releaseURL = getGhawReleaseInfo(context.Background())
require.Equal(t, "v1.2.3", tag)
require.Equal(t, "https://github.com/github/gh-aw/releases/tag/v1.2.3", releaseURL)
assert.Equal(t, 1, lookups, "successful release lookups should be cached")
Expand All @@ -70,19 +70,19 @@ func TestGetGhawReleaseInfoRetriesAfterFailure(t *testing.T) {
})

lookups := 0
getLatestOrgReleaseFunc = func(includePrereleases bool) (string, error) {
getLatestOrgReleaseFunc = func(_ context.Context, includePrereleases bool) (string, error) {
lookups++
if lookups == 1 {
return "", errors.New("temporary failure")
}
return "v1.2.4", nil
}

tag, releaseURL := getGhawReleaseInfo()
tag, releaseURL := getGhawReleaseInfo(context.Background())
require.Empty(t, tag)
require.Empty(t, releaseURL)

tag, releaseURL = getGhawReleaseInfo()
tag, releaseURL = getGhawReleaseInfo(context.Background())
require.Equal(t, "v1.2.4", tag)
require.Equal(t, "https://github.com/github/gh-aw/releases/tag/v1.2.4", releaseURL)
assert.Equal(t, 2, lookups, "failed release lookups should be retried")
Expand Down
Loading
Loading