From 685f5c5230eb6deda7c771c11bd62b7bbc292d7d Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 11:56:35 -0400 Subject: [PATCH 01/13] Added docs to content path Signed-off-by: Kristin Brown --- .github/workflows/doc-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-tests.yaml b/.github/workflows/doc-tests.yaml index 4dee2372f..92c10ad03 100644 --- a/.github/workflows/doc-tests.yaml +++ b/.github/workflows/doc-tests.yaml @@ -4,7 +4,7 @@ on: pull_request: paths: - 'assets/**' - - 'content/**' + - 'content/docs/**' schedule: # Every day at 06:00 UTC - cron: '0 6 * * *' From 07665dfcda20397b6abc07618350de440ee6a216 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 11:56:44 -0400 Subject: [PATCH 02/13] Fixed typo Signed-off-by: Kristin Brown --- .../docs/kubernetes/latest/llm/guardrails/google-model-armor.md | 2 +- .../docs/kubernetes/main/llm/guardrails/google-model-armor.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/kubernetes/latest/llm/guardrails/google-model-armor.md b/content/docs/kubernetes/latest/llm/guardrails/google-model-armor.md index b6b68b3bc..6d635a25d 100644 --- a/content/docs/kubernetes/latest/llm/guardrails/google-model-armor.md +++ b/content/docs/kubernetes/latest/llm/guardrails/google-model-armor.md @@ -28,7 +28,7 @@ Set up your agentgateway proxy with the credentials so that you can access Googl {{< tabs tabTotal="2" items="Local cluster (kind), GKE cluster" >}} {{% tab tabName="Local cluster (kind)" %}} -Create a service account with the required permissions to access Google Model Armor. Then mount a JSON key file to the `agentgatway-proxy` pod. +Create a service account with the required permissions to access Google Model Armor. Then mount a JSON key file to the `agentgateway-proxy` pod. 1. Set the Google Cloud project ID where you created the Google Model Armor template as an environment variable. ```sh diff --git a/content/docs/kubernetes/main/llm/guardrails/google-model-armor.md b/content/docs/kubernetes/main/llm/guardrails/google-model-armor.md index b6b68b3bc..6d635a25d 100644 --- a/content/docs/kubernetes/main/llm/guardrails/google-model-armor.md +++ b/content/docs/kubernetes/main/llm/guardrails/google-model-armor.md @@ -28,7 +28,7 @@ Set up your agentgateway proxy with the credentials so that you can access Googl {{< tabs tabTotal="2" items="Local cluster (kind), GKE cluster" >}} {{% tab tabName="Local cluster (kind)" %}} -Create a service account with the required permissions to access Google Model Armor. Then mount a JSON key file to the `agentgatway-proxy` pod. +Create a service account with the required permissions to access Google Model Armor. Then mount a JSON key file to the `agentgateway-proxy` pod. 1. Set the Google Cloud project ID where you created the Google Model Armor template as an environment variable. ```sh From 1f0ed50c9e1e4dd3a588511964fe01961c847969 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 13:45:41 -0400 Subject: [PATCH 03/13] Removed apiVersion Signed-off-by: Kristin Brown --- assets/agw-docs/pages/agentgateway/mcp/mcp-auth-setup.md | 1 - 1 file changed, 1 deletion(-) diff --git a/assets/agw-docs/pages/agentgateway/mcp/mcp-auth-setup.md b/assets/agw-docs/pages/agentgateway/mcp/mcp-auth-setup.md index de7874203..272561801 100644 --- a/assets/agw-docs/pages/agentgateway/mcp/mcp-auth-setup.md +++ b/assets/agw-docs/pages/agentgateway/mcp/mcp-auth-setup.md @@ -96,7 +96,6 @@ YAMLTest -f - <<'EOF' - name: wait for mcp-echo-authn policy to be accepted wait: target: - apiVersion: agentgateway.dev/v1alpha1 kind: AgentgatewayPolicy metadata: namespace: default From 59325062ad4a8a6167175b64c2d88c2b9565391a Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 13:46:41 -0400 Subject: [PATCH 04/13] Increased timeout from 300 to 400 Signed-off-by: Kristin Brown --- assets/agw-docs/pages/install/sample-app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/agw-docs/pages/install/sample-app.md b/assets/agw-docs/pages/install/sample-app.md index ae954bfb7..9766cab65 100644 --- a/assets/agw-docs/pages/install/sample-app.md +++ b/assets/agw-docs/pages/install/sample-app.md @@ -45,7 +45,7 @@ Install the sample httpbin app. comparator: greaterThan value: 0 polling: - timeoutSeconds: 300 + timeoutSeconds: 400 intervalSeconds: 5 EOF {{< /doc-test >}} From 8bb12f815456bd86898d75b16396a31151ac98d4 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 13:53:52 -0400 Subject: [PATCH 05/13] Revised error Signed-off-by: Kristin Brown --- scripts/doc_test_run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/doc_test_run.py b/scripts/doc_test_run.py index 9c727fcdc..9bf588ae7 100644 --- a/scripts/doc_test_run.py +++ b/scripts/doc_test_run.py @@ -524,7 +524,7 @@ def main() -> int: if args.test and len(args.file) == 1: logger.error("No test named '%s' found in %s", args.test, args.file[0]) else: - logger.error("No test metadata found in the provided file(s).") + logger.warning("No test metadata found in '%s'.", args.file[0]) return 1 else: test_cases, tested_documents = build_test_cases(repo_root, args.docs_glob, generated_dir) From c3a62e64047107462250f6eaa1ed0a1383602f94 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 13:58:04 -0400 Subject: [PATCH 06/13] Moved return Signed-off-by: Kristin Brown --- scripts/doc_test_run.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/doc_test_run.py b/scripts/doc_test_run.py index 9bf588ae7..e46a33670 100644 --- a/scripts/doc_test_run.py +++ b/scripts/doc_test_run.py @@ -523,9 +523,10 @@ def main() -> int: if not test_cases: if args.test and len(args.file) == 1: logger.error("No test named '%s' found in %s", args.test, args.file[0]) + return 1 else: logger.warning("No test metadata found in '%s'.", args.file[0]) - return 1 + else: test_cases, tested_documents = build_test_cases(repo_root, args.docs_glob, generated_dir) if not test_cases: From ec225a22ace94f040c8c9651ab0111dc8f5df098 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 14:09:26 -0400 Subject: [PATCH 07/13] Fixed warning location Signed-off-by: Kristin Brown --- scripts/doc_test_run.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/scripts/doc_test_run.py b/scripts/doc_test_run.py index e46a33670..8a7244635 100644 --- a/scripts/doc_test_run.py +++ b/scripts/doc_test_run.py @@ -517,15 +517,16 @@ def main() -> int: if not md_file.is_absolute(): md_file = repo_root / md_file cases, docs = build_test_cases_from_file(repo_root, md_file, generated_dir, filter_test_name=filter_test_name) + if not cases: + if args.test and len(args.file) == 1: + logger.error("No test named '%s' found in %s", args.test, f) + return 1 + else: + logger.warning("No test metadata found in '%s'.", f) + continue test_cases.extend(cases) tested_docs.extend(docs) tested_documents = sorted(set(tested_docs)) - if not test_cases: - if args.test and len(args.file) == 1: - logger.error("No test named '%s' found in %s", args.test, args.file[0]) - return 1 - else: - logger.warning("No test metadata found in '%s'.", args.file[0]) else: test_cases, tested_documents = build_test_cases(repo_root, args.docs_glob, generated_dir) From 810ec04181ce428ba30a3d08d8280eb34fe1fdb1 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 14:18:00 -0400 Subject: [PATCH 08/13] Added line break Signed-off-by: Kristin Brown --- content/docs/kubernetes/latest/mcp/auth/setup.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/docs/kubernetes/latest/mcp/auth/setup.md b/content/docs/kubernetes/latest/mcp/auth/setup.md index 59767534e..a74a8c75d 100644 --- a/content/docs/kubernetes/latest/mcp/auth/setup.md +++ b/content/docs/kubernetes/latest/mcp/auth/setup.md @@ -15,4 +15,5 @@ test: path: mcp-auth-setup --- + {{< reuse "agw-docs/pages/agentgateway/mcp/mcp-auth-setup.md" >}} From 113a6e448a659e8d5c0149b97db8097651d1c37d Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 14:22:22 -0400 Subject: [PATCH 09/13] Added a no content files found echo Signed-off-by: Kristin Brown --- .github/workflows/doc-tests.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/doc-tests.yaml b/.github/workflows/doc-tests.yaml index 92c10ad03..d03ef5915 100644 --- a/.github/workflows/doc-tests.yaml +++ b/.github/workflows/doc-tests.yaml @@ -71,12 +71,17 @@ jobs: while IFS= read -r asset_file; do rel_path="${asset_file#assets/agw-docs/pages/}" rel_path="${rel_path#agentgateway/}" + found=0 for content_dir in "content/docs/kubernetes/main" "content/docs/kubernetes/latest" "content/docs/standalone/main" "content/docs/standalone/latest"; do candidate="${content_dir}/${rel_path}" if [ -f "$candidate" ] && ! echo "$FILES" | grep -qF "$candidate"; then FILES="$FILES $candidate" + found=1 fi done + if [ "$found" -eq 0 ]; then + echo "No content candidates found for asset file: $asset_file" + fi done <<< "$ASSET_FILES" fi From 44933f29522ad8766c99392b10a92bfc511069e3 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 14:23:07 -0400 Subject: [PATCH 10/13] Added line breaks Signed-off-by: Kristin Brown --- .../latest/traffic-management/header-control/request-header.md | 1 + .../latest/traffic-management/header-control/response-header.md | 1 + 2 files changed, 2 insertions(+) diff --git a/content/docs/kubernetes/latest/traffic-management/header-control/request-header.md b/content/docs/kubernetes/latest/traffic-management/header-control/request-header.md index 1b0c9de6f..87301ed96 100644 --- a/content/docs/kubernetes/latest/traffic-management/header-control/request-header.md +++ b/content/docs/kubernetes/latest/traffic-management/header-control/request-header.md @@ -31,4 +31,5 @@ test: path: remove-request-header --- + {{< reuse "agw-docs/pages/traffic-management/header-control/request-header.md" >}} diff --git a/content/docs/kubernetes/latest/traffic-management/header-control/response-header.md b/content/docs/kubernetes/latest/traffic-management/header-control/response-header.md index ec1cc4742..0ef607f98 100644 --- a/content/docs/kubernetes/latest/traffic-management/header-control/response-header.md +++ b/content/docs/kubernetes/latest/traffic-management/header-control/response-header.md @@ -31,4 +31,5 @@ test: path: remove-response-header --- + {{< reuse "agw-docs/pages/traffic-management/header-control/response-header.md" >}} From a122d3239257e118eb29025a262ce04864c3f34f Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Wed, 18 Mar 2026 15:14:02 -0400 Subject: [PATCH 11/13] Updated node to 24 Signed-off-by: Kristin Brown --- .github/workflows/doc-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-tests.yaml b/.github/workflows/doc-tests.yaml index d03ef5915..1d4d22b0f 100644 --- a/.github/workflows/doc-tests.yaml +++ b/.github/workflows/doc-tests.yaml @@ -41,7 +41,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '24' - name: Install Python dependencies run: pip install pyyaml From 120e05c85b9f0917b128c2d4b1795c3e4505dbb9 Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Thu, 19 Mar 2026 09:27:33 -0400 Subject: [PATCH 12/13] Doc test fix Signed-off-by: Kristin Brown --- assets/agw-docs/pages/operations/ui-standalone.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/assets/agw-docs/pages/operations/ui-standalone.md b/assets/agw-docs/pages/operations/ui-standalone.md index 74a9a1e30..fce45da6d 100644 --- a/assets/agw-docs/pages/operations/ui-standalone.md +++ b/assets/agw-docs/pages/operations/ui-standalone.md @@ -6,6 +6,16 @@ The agentgateway Admin UI is a built-in web interface that runs alongside the pr The Admin UI is separate from the [Web UI integrations]({{< link-hextra path="/integrations/web-uis/" >}}), which are third-party AI chat frontends (such as Open WebUI or LibreChat) that you connect to agentgateway as a backend. The Admin UI is the management interface for agentgateway itself. +{{< doc-test paths="ui-standalone-default ui-standalone-custom-port" >}} +# Install agentgateway binary for tests +mkdir -p "$HOME/.local/bin" +export PATH="$HOME/.local/bin:$PATH" +VERSION="v{{< reuse "agw-docs/versions/patch-dev.md" >}}" +BINARY_URL="https://github.com/agentgateway/agentgateway/releases/download/${VERSION}/agentgateway-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/')" +curl -sL "$BINARY_URL" -o "$HOME/.local/bin/agentgateway" +chmod +x "$HOME/.local/bin/agentgateway" +{{< /doc-test >}} + ## Open the Admin UI {#open-admin-ui} 1. Start agentgateway with a config file. From 20cec20baf2f8a5a64bf846b30dc81f8fa37cffa Mon Sep 17 00:00:00 2001 From: Kristin Brown Date: Thu, 19 Mar 2026 09:35:14 -0400 Subject: [PATCH 13/13] Prompt template fix Signed-off-by: Kristin Brown --- content/docs/standalone/latest/llm/prompt-templates.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/content/docs/standalone/latest/llm/prompt-templates.md b/content/docs/standalone/latest/llm/prompt-templates.md index 87931a0df..d10e25811 100644 --- a/content/docs/standalone/latest/llm/prompt-templates.md +++ b/content/docs/standalone/latest/llm/prompt-templates.md @@ -98,6 +98,13 @@ binds: ).toJson() ``` +{{< doc-test paths="prompt-templates" >}} +agentgateway -f config.yaml & +AGW_PID=$! +trap 'kill $AGW_PID 2>/dev/null' EXIT +sleep 3 +{{< /doc-test >}} + Send a request as a regular user and verify the response is capped at the lower token limit. ```sh {paths="prompt-templates"}