diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index a4b014146de..80ea1d66bfb 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -169,7 +169,7 @@ jobs: run: "pip install --user --quiet numpy pandas matplotlib seaborn scipy\n\n# Verify installations\npython3 -c \"import numpy; print(f'NumPy {numpy.__version__} installed')\"\npython3 -c \"import pandas; print(f'Pandas {pandas.__version__} installed')\"\npython3 -c \"import matplotlib; print(f'Matplotlib {matplotlib.__version__} installed')\"\npython3 -c \"import seaborn; print(f'Seaborn {seaborn.__version__} installed')\"\npython3 -c \"import scipy; print(f'SciPy {scipy.__version__} installed')\"\n\necho \"All scientific libraries installed successfully\"\n" - if: always() name: Upload generated charts - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: if-no-files-found: warn name: data-charts @@ -177,7 +177,7 @@ jobs: retention-days: 30 - if: always() name: Upload source files and data - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: if-no-files-found: warn name: python-source-and-data diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 54cf6ca2681..ea69bedc75c 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -19,16 +19,17 @@ # gh aw compile # For more information: https://github.com/githubnext/gh-aw/blob/main/.github/aw/github-agentic-workflows.md # -# Hourly CI cleaner that fixes format, lint, and test issues when CI fails on main branch +# CI cleaner that fixes format, lint, and test issues when CI fails on main branch. Runs every 2 hours during peak hours (9 AM - 5 PM UTC) and every 3 hours during off-peak hours to optimize token spend. # # Resolved workflow manifest: # Imports: # - ../agents/ci-cleaner.agent.md -name: "Hourly CI Cleaner" +name: "CI Cleaner" "on": schedule: - - cron: "0 * * * *" + - cron: "0 9-17/2 * * *" + - cron: "0 0,3,6,18,21 * * *" workflow_dispatch: permissions: {} @@ -36,7 +37,7 @@ permissions: {} concurrency: group: "gh-aw-${{ github.workflow }}" -run-name: "Hourly CI Cleaner" +run-name: "CI Cleaner" jobs: activation: @@ -1877,7 +1878,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.372", - workflow_name: "Hourly CI Cleaner", + workflow_name: "CI Cleaner", experimental: false, supports_tools_allowlist: true, supports_http_transport: true, @@ -2233,9 +2234,9 @@ jobs: Let's tidy up the CI! ๐Ÿงนโœจ - # Hourly CI Cleaner + # CI Cleaner - You are an automated CI cleaner that runs hourly to fix CI failures on the main branch. + You are an automated CI cleaner that runs periodically to fix CI failures on the main branch. The workflow runs every 2 hours during peak hours (9 AM - 5 PM UTC) and every 3 hours during off-peak hours to optimize token spend while maintaining CI health. ## Mission @@ -5564,7 +5565,7 @@ jobs: continue-on-error: true uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: - name: firewall-logs-hourly-ci-cleaner + name: firewall-logs-ci-cleaner path: /tmp/gh-aw/sandbox/firewall/logs/ if-no-files-found: ignore - name: Parse firewall logs for step summary @@ -6015,7 +6016,7 @@ jobs: env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} GH_AW_NOOP_MAX: 1 - GH_AW_WORKFLOW_NAME: "Hourly CI Cleaner" + GH_AW_WORKFLOW_NAME: "CI Cleaner" GH_AW_TRACKER_ID: "hourly-ci-cleaner" with: github-token: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} @@ -6108,7 +6109,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} - GH_AW_WORKFLOW_NAME: "Hourly CI Cleaner" + GH_AW_WORKFLOW_NAME: "CI Cleaner" GH_AW_TRACKER_ID: "hourly-ci-cleaner" with: github-token: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} @@ -6220,7 +6221,7 @@ jobs: GH_AW_COMMENT_ID: ${{ needs.activation.outputs.comment_id }} GH_AW_COMMENT_REPO: ${{ needs.activation.outputs.comment_repo }} GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - GH_AW_WORKFLOW_NAME: "Hourly CI Cleaner" + GH_AW_WORKFLOW_NAME: "CI Cleaner" GH_AW_TRACKER_ID: "hourly-ci-cleaner" GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }} GH_AW_DETECTION_CONCLUSION: ${{ needs.detection.result }} @@ -6514,8 +6515,8 @@ jobs: - name: Setup threat detection uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 env: - WORKFLOW_NAME: "Hourly CI Cleaner" - WORKFLOW_DESCRIPTION: "Hourly CI cleaner that fixes format, lint, and test issues when CI fails on main branch" + WORKFLOW_NAME: "CI Cleaner" + WORKFLOW_DESCRIPTION: "CI cleaner that fixes format, lint, and test issues when CI fails on main branch. Runs every 2 hours during peak hours (9 AM - 5 PM UTC) and every 3 hours during off-peak hours to optimize token spend." with: script: | const fs = require('fs'); @@ -6752,7 +6753,7 @@ jobs: GH_AW_ENGINE_ID: "copilot" GH_AW_TRACKER_ID: "hourly-ci-cleaner" GH_AW_WORKFLOW_ID: "hourly-ci-cleaner" - GH_AW_WORKFLOW_NAME: "Hourly CI Cleaner" + GH_AW_WORKFLOW_NAME: "CI Cleaner" outputs: create_pull_request_pull_request_number: ${{ steps.create_pull_request.outputs.pull_request_number }} create_pull_request_pull_request_url: ${{ steps.create_pull_request.outputs.pull_request_url }} diff --git a/.github/workflows/hourly-ci-cleaner.md b/.github/workflows/hourly-ci-cleaner.md index a220b5c7b88..fea3078673e 100644 --- a/.github/workflows/hourly-ci-cleaner.md +++ b/.github/workflows/hourly-ci-cleaner.md @@ -1,8 +1,11 @@ --- -description: Hourly CI cleaner that fixes format, lint, and test issues when CI fails on main branch +description: CI cleaner that fixes format, lint, and test issues when CI fails on main branch. Runs every 2 hours during peak hours (9 AM - 5 PM UTC) and every 3 hours during off-peak hours to optimize token spend. on: schedule: - - cron: "0 * * * *" # Every hour + # Peak hours (9 AM - 5 PM UTC): Every 2 hours + - cron: "0 9-17/2 * * *" # Runs at 9 AM, 11 AM, 1 PM, 3 PM, 5 PM UTC + # Off-peak hours: Every 3 hours + - cron: "0 0,3,6,18,21 * * *" # Runs at 12 AM, 3 AM, 6 AM, 6 PM, 9 PM UTC workflow_dispatch: permissions: contents: read @@ -84,9 +87,9 @@ imports: - ../agents/ci-cleaner.agent.md --- -# Hourly CI Cleaner +# CI Cleaner -You are an automated CI cleaner that runs hourly to fix CI failures on the main branch. +You are an automated CI cleaner that runs periodically to fix CI failures on the main branch. The workflow runs every 2 hours during peak hours (9 AM - 5 PM UTC) and every 3 hours during off-peak hours to optimize token spend while maintaining CI health. ## Mission diff --git a/.github/workflows/issue-classifier.lock.yml b/.github/workflows/issue-classifier.lock.yml index ddfc3f26710..733eb8392fa 100644 --- a/.github/workflows/issue-classifier.lock.yml +++ b/.github/workflows/issue-classifier.lock.yml @@ -2999,7 +2999,7 @@ jobs: path: /tmp/gh-aw/aw_info.json if-no-files-found: warn - name: Run AI Inference - uses: actions/ai-inference@334892bb203895caaed82ec52d23c1ed9385151e # v2.0.4 + uses: actions/ai-inference@334892bb203895caaed82ec52d23c1ed9385151e # v1 env: GH_AW_MCP_CONFIG: /tmp/gh-aw/mcp-config/mcp-servers.json GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index b6f5612fe73..e854eb4eeac 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -6502,13 +6502,13 @@ jobs: - name: Download Go modules run: go mod download - name: Generate SBOM (SPDX format) - uses: anchore/sbom-action@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.11 + uses: anchore/sbom-action@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.10 with: artifact-name: sbom.spdx.json format: spdx-json output-file: sbom.spdx.json - name: Generate SBOM (CycloneDX format) - uses: anchore/sbom-action@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.11 + uses: anchore/sbom-action@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.10 with: artifact-name: sbom.cdx.json format: cyclonedx-json @@ -6698,7 +6698,7 @@ jobs: fetch-depth: 0 persist-credentials: false - name: Release with gh-extension-precompile - uses: cli/gh-extension-precompile@9e2237c30f869ad3bcaed6a4be2cd43564dd421b # v2.1.0 + uses: cli/gh-extension-precompile@9e2237c30f869ad3bcaed6a4be2cd43564dd421b # v2 with: build_script_override: scripts/build-release.sh go_version_file: go.mod diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index d3b0dba4e86..62826fd0598 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -231,7 +231,7 @@ jobs: ORGANIZATION: ${{ env.ORGANIZATION }} id: stale-repos name: Run stale_repos tool - uses: github/stale-repos@a21e55567b83cf3c3f3f9085d3038dc6cee02598 # v3.0.2 + uses: github/stale-repos@a21e55567b83cf3c3f3f9085d3038dc6cee02598 # v3 - env: INACTIVE_REPOS: ${{ steps.stale-repos.outputs.inactiveRepos }} name: Save stale repos output diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 3f60c9a5651..b8ad8e7f5f3 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -7546,7 +7546,7 @@ jobs: persist-credentials: false - name: Super-linter id: super-linter - uses: super-linter/super-linter@47984f49b4e87383eed97890fe2dca6063bbd9c3 # v8.3.1 + uses: super-linter/super-linter@47984f49b4e87383eed97890fe2dca6063bbd9c3 # v8.2.1 env: CREATE_LOG_FILE: "true" DEFAULT_BRANCH: main diff --git a/docs/src/content/docs/labs.mdx b/docs/src/content/docs/labs.mdx index 24488cfccdf..1d6f3efc05b 100644 --- a/docs/src/content/docs/labs.mdx +++ b/docs/src/content/docs/labs.mdx @@ -27,6 +27,7 @@ These are experimental agentic workflows used by the GitHub Next team to learn, | [Campaign Intelligence System](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/intelligence.md) | copilot | [![Campaign Intelligence System](https://github.com/githubnext/gh-aw/actions/workflows/intelligence.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/intelligence.lock.yml) | `0 9 1 * *` | - | | [Campaign Manager - Meta-Orchestrator](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/campaign-manager.md) | copilot | [![Campaign Manager - Meta-Orchestrator](https://github.com/githubnext/gh-aw/actions/workflows/campaign-manager.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/campaign-manager.lock.yml) | - | - | | [Changeset Generator](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/changeset.md) | codex | [![Changeset Generator](https://github.com/githubnext/gh-aw/actions/workflows/changeset.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/changeset.lock.yml) | - | - | +| [CI Cleaner](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/hourly-ci-cleaner.md) | copilot | [![CI Cleaner](https://github.com/githubnext/gh-aw/actions/workflows/hourly-ci-cleaner.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/hourly-ci-cleaner.lock.yml) | `0 9-17/2 * * *` | - | | [CI Failure Doctor](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/ci-doctor.md) | copilot | [![CI Failure Doctor](https://github.com/githubnext/gh-aw/actions/workflows/ci-doctor.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/ci-doctor.lock.yml) | - | - | | [CI Optimization Coach](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/ci-coach.md) | copilot | [![CI Optimization Coach](https://github.com/githubnext/gh-aw/actions/workflows/ci-coach.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/ci-coach.lock.yml) | `0 13 * * 1-5` | - | | [CLI Consistency Checker](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/cli-consistency-checker.md) | copilot | [![CLI Consistency Checker](https://github.com/githubnext/gh-aw/actions/workflows/cli-consistency-checker.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/cli-consistency-checker.lock.yml) | `0 13 * * 1-5` | - | @@ -71,7 +72,6 @@ These are experimental agentic workflows used by the GitHub Next team to learn, | [Go Logger Enhancement](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/go-logger.md) | claude | [![Go Logger Enhancement](https://github.com/githubnext/gh-aw/actions/workflows/go-logger.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/go-logger.lock.yml) | - | - | | [Go Pattern Detector](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/go-pattern-detector.md) | claude | [![Go Pattern Detector](https://github.com/githubnext/gh-aw/actions/workflows/go-pattern-detector.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/go-pattern-detector.lock.yml) | `0 14 * * 1-5` | - | | [Grumpy Code Reviewer ๐Ÿ”ฅ](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/grumpy-reviewer.md) | copilot | [![Grumpy Code Reviewer ๐Ÿ”ฅ](https://github.com/githubnext/gh-aw/actions/workflows/grumpy-reviewer.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/grumpy-reviewer.lock.yml) | - | - | -| [Hourly CI Cleaner](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/hourly-ci-cleaner.md) | copilot | [![Hourly CI Cleaner](https://github.com/githubnext/gh-aw/actions/workflows/hourly-ci-cleaner.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/hourly-ci-cleaner.lock.yml) | `0 * * * *` | - | | [Human-AI Collaboration Campaign](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/human-ai-collaboration.md) | copilot | [![Human-AI Collaboration Campaign](https://github.com/githubnext/gh-aw/actions/workflows/human-ai-collaboration.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/human-ai-collaboration.lock.yml) | - | - | | [Instructions Janitor](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/instructions-janitor.md) | claude | [![Instructions Janitor](https://github.com/githubnext/gh-aw/actions/workflows/instructions-janitor.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/instructions-janitor.lock.yml) | - | - | | [Issue Arborist](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/issue-arborist.md) | codex | [![Issue Arborist](https://github.com/githubnext/gh-aw/actions/workflows/issue-arborist.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/issue-arborist.lock.yml) | - | - | @@ -87,6 +87,7 @@ These are experimental agentic workflows used by the GitHub Next team to learn, | [Multi-Device Docs Tester](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/daily-multi-device-docs-tester.md) | claude | [![Multi-Device Docs Tester](https://github.com/githubnext/gh-aw/actions/workflows/daily-multi-device-docs-tester.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/daily-multi-device-docs-tester.lock.yml) | - | - | | [Organization Health Report](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/org-health-report.md) | copilot | [![Organization Health Report](https://github.com/githubnext/gh-aw/actions/workflows/org-health-report.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/org-health-report.lock.yml) | - | - | | [Plan Command](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/plan.md) | copilot | [![Plan Command](https://github.com/githubnext/gh-aw/actions/workflows/plan.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/plan.lock.yml) | - | - | +| [Playground: Org project update issue](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/playground-org-project-update-issue.md) | copilot | [![Playground: Org project update issue](https://github.com/githubnext/gh-aw/actions/workflows/playground-org-project-update-issue.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/playground-org-project-update-issue.lock.yml) | - | - | | [Poem Bot - A Creative Agentic Workflow](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/poem-bot.md) | copilot | [![Poem Bot - A Creative Agentic Workflow](https://github.com/githubnext/gh-aw/actions/workflows/poem-bot.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/poem-bot.lock.yml) | - | - | | [PR Nitpick Reviewer ๐Ÿ”](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/pr-nitpick-reviewer.md) | copilot | [![PR Nitpick Reviewer ๐Ÿ”](https://github.com/githubnext/gh-aw/actions/workflows/pr-nitpick-reviewer.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/pr-nitpick-reviewer.lock.yml) | - | - | | [Python Data Visualization Generator](https://github.com/githubnext/gh-aw/blob/main/.github/workflows/python-data-charts.md) | copilot | [![Python Data Visualization Generator](https://github.com/githubnext/gh-aw/actions/workflows/python-data-charts.lock.yml/badge.svg)](https://github.com/githubnext/gh-aw/actions/workflows/python-data-charts.lock.yml) | - | - |