Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/ui-preview-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,10 @@ jobs:
test -d client || { echo "::error::artifact missing client/ assets dir"; exit 1; }
# 3) Allowlist file extensions — fail on anything that isn't a normal web/build output (blocks
# smuggled scripts/binaries). A few extensionless CF asset files are explicitly permitted.
# `zip` covers the served downloads (e.g. /downloads/gittensory-extension.zip) — a passive
# static asset wrangler only uploads (never executes), so allowing it doesn't run fork code.
unexpected="$(find . -regextype posix-extended -type f \
-not -iregex '.*\.(mjs|js|cjs|map|json|css|html?|txt|svg|png|jpe?g|gif|webp|avif|ico|bmp|woff2?|ttf|otf|eot|wasm|xml|webmanifest|md|csv|wgsl|glb|gltf)$' \
-not -iregex '.*\.(mjs|js|cjs|map|json|css|html?|txt|svg|png|jpe?g|gif|webp|avif|ico|bmp|woff2?|ttf|otf|eot|wasm|xml|webmanifest|md|csv|zip|wgsl|glb|gltf)$' \
-not -name '_headers' -not -name '_redirects' -not -name '_routes.json' -not -name '.assetsignore')"
if [ -n "$unexpected" ]; then
echo "::error::Artifact contains unexpected file types — refusing to deploy:"
Expand Down