Repository navigation
Serve diff2html from the proxy instead of jsDelivr - #471
Merged
Merged
Conversation
The compare page loaded diff2html from cdn.jsdelivr.net without a version or integrity hash, so whatever jsDelivr served as the latest release ran with the proxy origin's privileges, and the page broke where the proxy cannot reach the internet. - Vendor diff2html 3.4.56 (MIT) under static/vendor like tailwind and lucide - Load its script and stylesheet from /ui/static/vendor - Fail a test when any template loads a script or stylesheet from another origin
andrew
approved these changes
Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The compare page loaded diff2html from
cdn.jsdelivr.net/npm/diff2html/...with no version and no integrity hash. Whatever jsDelivr serves as the latest release ran with the proxy origin's privileges, and the page broke wherever the proxy can't reach the internet.Changes
internal/server/static/vendor/, like tailwind and lucide, with a one-line license banner as lucide's file has. The tarball's sha512 matched the registry'sdist.integrity.compare_versions.htmlloads the script and stylesheet from/ui/static/vendor/.Testing
TestTemplatesLoadNoThirdPartyAssetsfails when any embedded template loads a script or stylesheet from another origin. Before this change it flagged the two jsDelivr tags.TestStaticFilescovers the two new files.go test -race ./internal/server/...,go vetandgolangci-lintv2.13.1 pass.