From 2aa0e5a2007e6e4a5fba47a5c072f41374f0e326 Mon Sep 17 00:00:00 2001 From: Ian Thomas Date: Wed, 13 May 2026 13:08:06 +0100 Subject: [PATCH] Make wasm GIT_CORS_PROXY env var much more configurable --- src/wasm/stream.cpp | 37 ++++++++++-------------- wasm/cockle-deploy/cockle-config-in.json | 1 - wasm/lite-deploy/cockle-config-in.json | 1 - 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/wasm/stream.cpp b/src/wasm/stream.cpp index 559c764..8b356a5 100644 --- a/src/wasm/stream.cpp +++ b/src/wasm/stream.cpp @@ -125,32 +125,27 @@ EM_JS(const char*, js_maybe_convert_url, (const char* url_str), { let ret = url_js; // Default to returning original unconverted URL as new string. if (GIT_CORS_PROXY) { - // clang-format off - const GIT_CORS_PROXY_TYPE = env["GIT_CORS_PROXY_TYPE"] ?? "prefix"; - // clang-format on - if (GIT_CORS_PROXY_TYPE == "prefix") + if (!GIT_CORS_PROXY.includes("{")) { - ret = GIT_CORS_PROXY; - if (ret.at(-1) != '/') - { - ret += '/'; - } - ret += url_js; + ret = GIT_CORS_PROXY + url_js; } - else if (GIT_CORS_PROXY_TYPE == "insert") + else { - ret = url.protocol + "/" + GIT_CORS_PROXY; - if (ret.at(-1) != '/') + ret = GIT_CORS_PROXY; + ret = ret.replace("{url}", url_js); + ret = ret.replace("{url:encode}", encodeURIComponent(url_js)); + ret = ret.replace("{protocol}", url.protocol); + ret = ret.replace("{protocol:encode}", encodeURIComponent(url.protocol)); + ret = ret.replace("{host}", url.host); + ret = ret.replace("{host:encode}", encodeURIComponent(url.host)); + ret = ret.replace("{path}", url.pathname + url.search); + ret = ret.replace("{path:encode}", encodeURIComponent(url.pathname + url.search)); + const api_key = env["GIT_CORS_PROXY_API_KEY"]; + if (api_key) { - ret += '/'; + ret = ret.replace("{api_key}", api_key); } - ret += url.host + url.pathname + url.search; - } - else - { - // clang-format off - console.warn(`Invalid GIT_CORS_PROXY_TYPE of '${GIT_CORS_PROXY_TYPE}'`); - // clang-format on + // Ignore any other use of curly braces. } } return stringToNewUTF8(ret); diff --git a/wasm/cockle-deploy/cockle-config-in.json b/wasm/cockle-deploy/cockle-config-in.json index bbb59a1..95a1db1 100644 --- a/wasm/cockle-deploy/cockle-config-in.json +++ b/wasm/cockle-deploy/cockle-config-in.json @@ -10,7 +10,6 @@ "vi": "vim" }, "environment": { - "GIT_CORS_PROXY": "https://corsproxy.io/?url=", "GIT_AUTHOR_NAME": "Jane Doe", "GIT_AUTHOR_EMAIL": "jane.doe@blabla.com", "GIT_COMMITTER_NAME": "Jane Doe", diff --git a/wasm/lite-deploy/cockle-config-in.json b/wasm/lite-deploy/cockle-config-in.json index bbb59a1..95a1db1 100644 --- a/wasm/lite-deploy/cockle-config-in.json +++ b/wasm/lite-deploy/cockle-config-in.json @@ -10,7 +10,6 @@ "vi": "vim" }, "environment": { - "GIT_CORS_PROXY": "https://corsproxy.io/?url=", "GIT_AUTHOR_NAME": "Jane Doe", "GIT_AUTHOR_EMAIL": "jane.doe@blabla.com", "GIT_COMMITTER_NAME": "Jane Doe",