From a2bc3cd1a68c01a18b09154944c39daf66c6b11c Mon Sep 17 00:00:00 2001 From: viktormarinho Date: Thu, 23 Apr 2026 10:29:15 -0300 Subject: [PATCH] fix(github): send User-Agent on all GitHub API calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cloudflare Workers' fetch doesn't set a default User-Agent, and GitHub's API rejects UA-less requests with 403 "Request forbidden by administrative rules" — the worker was crashing at upstream tool discovery (getAppInstallationToken) on the very first request. Co-Authored-By: Claude Opus 4.7 (1M context) --- github/server/lib/github-app-auth.ts | 2 ++ github/server/lib/github-client.ts | 1 + github/server/lib/installation-map.ts | 1 + github/server/lib/mcp-proxy.ts | 1 + 4 files changed, 5 insertions(+) diff --git a/github/server/lib/github-app-auth.ts b/github/server/lib/github-app-auth.ts index 131c4728..79071349 100644 --- a/github/server/lib/github-app-auth.ts +++ b/github/server/lib/github-app-auth.ts @@ -154,6 +154,7 @@ export async function getAppInstallationToken(): Promise { Authorization: `Bearer ${jwt}`, Accept: "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28", + "User-Agent": "deco-cms-github-mcp", }, }, ); @@ -186,6 +187,7 @@ export async function getAppInstallationToken(): Promise { Authorization: `Bearer ${jwt}`, Accept: "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28", + "User-Agent": "deco-cms-github-mcp", }, }, ); diff --git a/github/server/lib/github-client.ts b/github/server/lib/github-client.ts index 66cbf691..6eca8cad 100644 --- a/github/server/lib/github-client.ts +++ b/github/server/lib/github-client.ts @@ -26,6 +26,7 @@ async function postToGitHub( headers: { Accept: "application/json", "Content-Type": "application/json", + "User-Agent": "deco-cms-github-mcp", }, body: JSON.stringify(body), }); diff --git a/github/server/lib/installation-map.ts b/github/server/lib/installation-map.ts index c88f27c7..74a8dc50 100644 --- a/github/server/lib/installation-map.ts +++ b/github/server/lib/installation-map.ts @@ -124,6 +124,7 @@ export async function captureInstallationMappings( Authorization: `Bearer ${token}`, Accept: "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28", + "User-Agent": "deco-cms-github-mcp", }, }, ); diff --git a/github/server/lib/mcp-proxy.ts b/github/server/lib/mcp-proxy.ts index 8ff2fcac..b922e6c4 100644 --- a/github/server/lib/mcp-proxy.ts +++ b/github/server/lib/mcp-proxy.ts @@ -29,6 +29,7 @@ function connectUpstreamClient(token: string): Promise { requestInit: { headers: { Authorization: `Bearer ${token}`, + "User-Agent": "deco-cms-github-mcp", }, }, },