diff --git a/.github/workflows/docker-build-check.yml b/.github/workflows/docker-build-check.yml index fb8c800..bc0ea50 100644 --- a/.github/workflows/docker-build-check.yml +++ b/.github/workflows/docker-build-check.yml @@ -41,7 +41,7 @@ jobs: submodules: recursive - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Build Docker image (no push) env: diff --git a/.github/workflows/integration-test-getting-started.yml b/.github/workflows/integration-test-getting-started.yml index 2ab6f50..4408cc4 100644 --- a/.github/workflows/integration-test-getting-started.yml +++ b/.github/workflows/integration-test-getting-started.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: submodules: recursive diff --git a/.github/workflows/pr-first-approval-label-run.yml b/.github/workflows/pr-first-approval-label-run.yml index 4b9bc33..3e463d5 100644 --- a/.github/workflows/pr-first-approval-label-run.yml +++ b/.github/workflows/pr-first-approval-label-run.yml @@ -36,7 +36,7 @@ jobs: actions: read steps: - name: Download PR number artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: review-info run-id: ${{ github.event.workflow_run.id }} diff --git a/.github/workflows/pr-first-approval-label.yml b/.github/workflows/pr-first-approval-label.yml index 064fd9d..38053df 100644 --- a/.github/workflows/pr-first-approval-label.yml +++ b/.github/workflows/pr-first-approval-label.yml @@ -33,7 +33,7 @@ jobs: run: echo "${{ github.event.pull_request.number }}" > pr_number.txt - name: Upload PR number - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: review-info path: pr_number.txt diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 65c4e7c..c6c4136 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -126,28 +126,28 @@ jobs: ls -lh drasi-server-* - name: Upload x86_64-linux-gnu - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-server-x86_64-linux-gnu path: drasi-server-x86_64-linux-gnu if-no-files-found: error - name: Upload aarch64-linux-gnu - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-server-aarch64-linux-gnu path: drasi-server-aarch64-linux-gnu if-no-files-found: error - name: Upload x86_64-linux-musl - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-server-x86_64-linux-musl path: drasi-server-x86_64-linux-musl if-no-files-found: error - name: Upload aarch64-linux-musl - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-server-aarch64-linux-musl path: drasi-server-aarch64-linux-musl @@ -244,7 +244,7 @@ jobs: fi - name: Upload binary artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-server-${{ matrix.artifact_suffix }} path: drasi-server-${{ matrix.artifact_suffix }} @@ -291,7 +291,7 @@ jobs: fi - name: Upload binary artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-server-x86_64-windows-msvc path: drasi-server-x86_64-windows-msvc.exe @@ -354,28 +354,28 @@ jobs: ls -lh drasi-sse-cli-* - name: Upload x86_64-linux-gnu - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-sse-cli-x86_64-linux-gnu path: drasi-sse-cli-x86_64-linux-gnu if-no-files-found: error - name: Upload aarch64-linux-gnu - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-sse-cli-aarch64-linux-gnu path: drasi-sse-cli-aarch64-linux-gnu if-no-files-found: error - name: Upload x86_64-linux-musl - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-sse-cli-x86_64-linux-musl path: drasi-sse-cli-x86_64-linux-musl if-no-files-found: error - name: Upload aarch64-linux-musl - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-sse-cli-aarch64-linux-musl path: drasi-sse-cli-aarch64-linux-musl @@ -426,7 +426,7 @@ jobs: fi - name: Upload binary artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-sse-cli-${{ matrix.artifact_suffix }} path: drasi-sse-cli-${{ matrix.artifact_suffix }} @@ -468,7 +468,7 @@ jobs: fi - name: Upload binary artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: drasi-sse-cli-x86_64-windows path: drasi-sse-cli-x86_64-windows.exe @@ -493,11 +493,11 @@ jobs: uses: actions/checkout@v6 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Log in to GitHub Container Registry if: ${{ github.event_name != 'schedule' && !inputs.dry_run }} - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -529,7 +529,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -633,7 +633,7 @@ jobs: uses: actions/checkout@v6 - name: Download binary artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: drasi-server-${{ matrix.artifact_suffix }} path: bin @@ -718,14 +718,14 @@ jobs: uses: actions/checkout@v6 - name: Download drasi-server artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: path: artifacts pattern: drasi-server-* merge-multiple: false - name: Download drasi-sse-cli artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: path: artifacts pattern: drasi-sse-cli-* diff --git a/.github/workflows/validate-yaml-snippets.lock.yml b/.github/workflows/validate-yaml-snippets.lock.yml index 5627f9e..e8f47e3 100644 --- a/.github/workflows/validate-yaml-snippets.lock.yml +++ b/.github/workflows/validate-yaml-snippets.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"0fc5fcfd8ac2cee660f5d7f7f27fc6c25601b15be080a66c965d841a856658ae","compiler_version":"v0.71.5","strict":true,"agent_id":"copilot"} +# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"7bb2a9361f45cf540e8447a8911276d337e6a7a13c3faf5d79be5aa6d1c00968","compiler_version":"v0.71.5","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"},{"repo":"github/gh-aw-actions/setup","sha":"b8068426813005612b960b5ab0b8bd2c27142323","version":"v0.71.5"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.40","digest":"sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.40@sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40","digest":"sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40@sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.40","digest":"sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.40@sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.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,20 +202,20 @@ jobs: run: | bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh" { - cat << 'GH_AW_PROMPT_b467fa86305e5d20_EOF' + cat << 'GH_AW_PROMPT_5de1c0c4467be673_EOF' - GH_AW_PROMPT_b467fa86305e5d20_EOF + GH_AW_PROMPT_5de1c0c4467be673_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_b467fa86305e5d20_EOF' + cat << 'GH_AW_PROMPT_5de1c0c4467be673_EOF' Tools: add_comment, missing_tool, missing_data, noop - GH_AW_PROMPT_b467fa86305e5d20_EOF + GH_AW_PROMPT_5de1c0c4467be673_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md" - cat << 'GH_AW_PROMPT_b467fa86305e5d20_EOF' + cat << 'GH_AW_PROMPT_5de1c0c4467be673_EOF' The following GitHub context information is available for this workflow: {{#if __GH_AW_GITHUB_ACTOR__ }} @@ -244,12 +244,12 @@ jobs: {{/if}} - GH_AW_PROMPT_b467fa86305e5d20_EOF + GH_AW_PROMPT_5de1c0c4467be673_EOF cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md" - cat << 'GH_AW_PROMPT_b467fa86305e5d20_EOF' + cat << 'GH_AW_PROMPT_5de1c0c4467be673_EOF' {{#runtime-import .github/workflows/validate-yaml-snippets.md}} - GH_AW_PROMPT_b467fa86305e5d20_EOF + GH_AW_PROMPT_5de1c0c4467be673_EOF } > "$GH_AW_PROMPT" - name: Interpolate variables and render templates uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 @@ -440,9 +440,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_508016b5cfd63d02_EOF' + cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_60f985f217f0a16c_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_508016b5cfd63d02_EOF + GH_AW_SAFE_OUTPUTS_CONFIG_60f985f217f0a16c_EOF - name: Generate Safe Outputs Tools env: GH_AW_TOOLS_META_JSON: | @@ -631,7 +631,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_7cc706b207579f99_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" + cat << GH_AW_MCP_CONFIG_151b682736e6c392_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs" { "mcpServers": { "github": { @@ -672,7 +672,7 @@ jobs: "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}" } } - GH_AW_MCP_CONFIG_7cc706b207579f99_EOF + GH_AW_MCP_CONFIG_151b682736e6c392_EOF - name: Mount MCP servers as CLIs id: mount-mcp-clis continue-on-error: true @@ -701,6 +701,9 @@ jobs: # --allow-tool safeoutputs # --allow-tool shell(cargo build --release) # --allow-tool shell(cargo run -- --config *) + # --allow-tool shell(cargo test config_parsing_failure*) + # --allow-tool shell(cargo test example_configs*) + # --allow-tool shell(cargo test readme_examples*) # --allow-tool shell(cat *) # --allow-tool shell(cat) # --allow-tool shell(date) @@ -727,7 +730,7 @@ jobs: printf '%s\n' '{"$schema":"https://github.com/github/gh-aw-firewall/releases/download/v0.25.40/awf-config.schema.json","network":{"allowDomains":["api.business.githubcopilot.com","api.enterprise.githubcopilot.com","api.github.com","api.githubcopilot.com","api.individual.githubcopilot.com","api.snapcraft.io","archive.ubuntu.com","azure.archive.ubuntu.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","github.com","host.docker.internal","json-schema.org","json.schemastore.org","keyserver.ubuntu.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","ppa.launchpad.net","raw.githubusercontent.com","registry.npmjs.org","s.symcb.com","s.symcd.com","security.ubuntu.com","telemetry.enterprise.githubcopilot.com","ts-crl.ws.symantec.com","ts-ocsp.ws.symantec.com","www.googleapis.com"]},"apiProxy":{"enabled":true,"models":{"auto":["large"],"deep-research":["copilot/deep-research*","google/deep-research*"],"gemini-flash":["copilot/gemini-*flash*","google/gemini-*flash*"],"gemini-pro":["copilot/gemini-*pro*","google/gemini-*pro*"],"gpt-4.1":["copilot/gpt-4.1*","openai/gpt-4.1*"],"gpt-5":["copilot/gpt-5*","openai/gpt-5*"],"gpt-5-codex":["copilot/gpt-5*codex*","openai/gpt-5*codex*"],"gpt-5-mini":["copilot/gpt-5*mini*","openai/gpt-5*mini*"],"gpt-5-nano":["copilot/gpt-5*nano*","openai/gpt-5*nano*"],"gpt-5-pro":["copilot/gpt-5*pro*","openai/gpt-5*pro*"],"haiku":["copilot/*haiku*","anthropic/*haiku*"],"large":["sonnet","gpt-5-pro","gpt-5","gemini-pro"],"mini":["haiku","gpt-5-mini","gpt-5-nano","gemini-flash"],"opus":["copilot/*opus*","anthropic/*opus*"],"reasoning":["copilot/o1*","copilot/o3*","copilot/o4*","openai/o1*","openai/o3*","openai/o4*"],"small":["mini"],"sonnet":["copilot/*sonnet*","anthropic/*sonnet*"]}},"container":{"imageTag":"0.25.40,squid=sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51,agent=sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504,api-proxy=sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280,cli-proxy=sha256:3e7152911d4b4b7b97beef9d3d7d924ff7902227e86001ef3838fb728d5d514c"}}' > "${RUNNER_TEMP}/gh-aw/awf-config.json" && cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json # shellcheck disable=SC1003 sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \ - -- /bin/bash -c 'export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && export PATH="$(find /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || echo node)"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cargo build --release)'\'' --allow-tool '\''shell(cargo run -- --config *)'\'' --allow-tool '\''shell(cat *)'\'' --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find . -name)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log + -- /bin/bash -c 'export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && export PATH="$(find /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || echo node)"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cargo build --release)'\'' --allow-tool '\''shell(cargo run -- --config *)'\'' --allow-tool '\''shell(cargo test config_parsing_failure*)'\'' --allow-tool '\''shell(cargo test example_configs*)'\'' --allow-tool '\''shell(cargo test readme_examples*)'\'' --allow-tool '\''shell(cat *)'\'' --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find . -name)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log env: COPILOT_AGENT_RUNNER_TYPE: STANDALONE COPILOT_API_KEY: dummy-byok-key-for-offline-mode diff --git a/.github/workflows/validate-yaml-snippets.md b/.github/workflows/validate-yaml-snippets.md index f3647c5..6eecf63 100644 --- a/.github/workflows/validate-yaml-snippets.md +++ b/.github/workflows/validate-yaml-snippets.md @@ -15,6 +15,9 @@ tools: bash: - "cargo build --release" - "cargo run -- --config *" + - "cargo test readme_examples*" + - "cargo test example_configs*" + - "cargo test config_parsing_failure*" - "find . -name '*.md' -type f" - "cat *" safe-outputs: @@ -43,6 +46,11 @@ You are an AI agent that validates YAML configuration snippets found in markdown - For each valid-looking config snippet, save it to a temporary file - Try to start the server with that config: `cargo run -- --config /path/to/temp-config.yaml` - Check if the server starts without errors or if it reports validation issues + - Run the repository's existing snippet/config validation tests, which already + cover the documented examples: + - `cargo test readme_examples` + - `cargo test example_configs` + - `cargo test config_parsing_failure` 5. **Report findings**: - If all YAML snippets are valid, comment: "✅ All YAML snippets validated successfully!"