Add blob path to markup rendering cache key

What does this MR do and why?

Fixes Heading anchors are not updated when a snippet ... (#605181). Manually verified in GDK-in-a-box.

Root cause

The markup rendering cache key did not include the file path. Because the cache key remained unchanged after a file rename, the stale rendered HTML for snippets was still served, with heading anchors still prefixed by the old filename.

Solution

Added blob.path to the cache key.

Cache key rollover and load impact

This change introduces a new cache key shape for all markup blobs (Markdown, AsciiDoc, org-mode, reStructuredText, etc.), not only in snippets but also in project repositories. Existing entries under the old key become orphans and expire via the cache TTL automatically.

The first access under the new key will trigger a cache miss and re-render each file, which raises a concern about a temporary increase in load. That said, cache misses are expected to occur individually as each file is accessed, rather than all at once, so a coordinated spike is unlikely.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by skkzsh

Merge request reports

Loading