legit

Fork of https://git.icyphox.sh/legit

Commits at 196f7e5d9dc2c537a6f8be4b157eb58f6a88566d

  1. 196f7e5d Allow omitting "server.name" option To make config file optional. Shota FUJI authored at Shota FUJI comitted at
  2. 1c31b6dd Use Landlock to restrict filesystem access on Linux https://tangled.org/pocka.jp/legit/issues/13 Shota FUJI authored at Shota FUJI comitted at
  3. 1ba6a0a9 Remove legacy build constraints This fork requires Go v1.24, so the legacy notation is no longer necessary. The old one requries different syntax for !(A || B). Shota FUJI authored at Shota FUJI comitted at
  4. 436d14d4 Prevent path traversal outside project boundary in preview links It's not that harmful, but cross-project links are confusing and non-portable. Shota FUJI authored at Shota FUJI comitted at
  5. 99ef4012 Add tests for internal link transformer https://tangled.org/pocka.jp/legit/issues/10 Shota FUJI authored at Shota FUJI comitted at
  6. 727c9690 Remove unnecessary dot from internal links Browsers will normalize fine, though. Shota FUJI authored at Shota FUJI comitted at
  7. 6450aeff Add tests for internal media source link transformer https://tangled.org/pocka.jp/legit/issues/10 Shota FUJI authored at Shota FUJI comitted at
  8. afe955fa Fix incorrect URL for image src if it has query params Shota FUJI authored at Shota FUJI comitted at
  9. 21b3950e Use monospace for object hash For commit hashes, use of monospace is preferred because that makes the width of commit hash consistent. "Commits for" in log page can be a commit hash but I kept it as-is because most people would browse on branches. Shota FUJI authored at Shota FUJI comitted at
  10. 4c27b217 Don't use system-ui for content texts "system-ui" is for UI texts, not for content texts. From now on, controls and labels use system-ui and content texts use --font-content (sans-serif). Shota FUJI authored at Shota FUJI comitted at
  11. 83c692e6 Fix header and footer not being sticky on wide viewport Regression introduced at somewhere. Shota FUJI authored at Shota FUJI comitted at
  12. c6e0d57a Fix footer partially occlude aside section on short viewport https://tangled.org/pocka.jp/legit/issues/12 Shota FUJI authored at Shota FUJI comitted at
  13. ac5d7349 Fix commit hash on aside overflows horizontally https://tangled.org/pocka.jp/legit/issues/11 Shota FUJI authored at Shota FUJI comitted at
  14. 5fc79883 Add pagination to commits page Rendering all commits in a repo is not a good idea. It's really slow and heavy on an active repository such as Zig the language. https://tangled.org/pocka.jp/legit/issues/9 Shota FUJI authored at Shota FUJI comitted at
  15. 6248d4ed Fix long commit history slowing summary page https://tangled.org/pocka.jp/legit/issues/7#comment-3mqn5xujwoh22 The summary page displays recent up to three commits, but underlying logic reads the whole repo history then subslice the result. The loading of entire commit history is really demanding task and slows the response time of a summary page down a lot. Before this patch, loading a summary page of Zig project took 900ms ~ 1100ms. After this patch, it's 180ms under load. Shota FUJI authored at Shota FUJI comitted at
  16. 62b73d36 Fix directory links in Markdown preview is incorrect README and preview code uses each own rendering logic, caused diverged output. An internal directory link inside preview HTML links to 404 (server returns 500) page. This patch refactors HTML rendering into interface-d one and let both endpoint use that. The original motivation for this refactor was to cache rendered HTML, but turns out refactor alone is significant so I gave this a dedicated commit. Shota FUJI authored at Shota FUJI comitted at
  17. a4dcd129 Compile HTML templates upfront https://tangled.org/pocka.jp/legit/issues/5 Compiling HTML templates on every request is useless on production deployment and slows down response time significantly. This patch makes compile-on-request opt-in and upfront compilation a default. On my dev machine (Intel Core Ultra 9 285H), spam_repo_list 1,000 iterations / 30 VUs gets 6ms avg -> sub 1ms avg and spam_repo_summary 1,000 iterations / 30 VUs gets 8.2ms avg -> 2.5ms avg improvements. Shota FUJI authored at Shota FUJI comitted at
  18. d1cb4494 Delete unused struct Shota FUJI authored at Shota FUJI comitted at
  19. 290981c5 Don't unveil empty paths Both templates dir and static dir are now optional. I'm not sure empty paths will trigger error, though. Shota FUJI authored at Shota FUJI comitted at
  20. 3b77efdc Add test for not following symlink inside repo dir Shota FUJI authored at Shota FUJI comitted at
  21. f4a70d2b Fix occasional git fetch error (gzipped upload-pack) https://tangled.org/pocka.jp/legit/issues/6 https://github.com/icyphox/legit/pull/58 I could not write a test reliably triggers this condition (upload-pack request having gzip body) even with system git. Shota FUJI authored at Shota FUJI comitted at
  22. c9d54abb Deny git clone of ignored repo https://tangled.org/pocka.jp/legit/issues/2 https://github.com/icyphox/legit/issues/56 There were no guard / check for "ignored" config in endpoints git client uses, so everybody could clone ignored repositories. Shota FUJI authored at Shota FUJI comitted at
  23. bbeea586 Add simple tests These are basis for the future tests. Shota FUJI authored at Shota FUJI comitted at
  24. 3a07b138 Upgrade go-git I needed "git.InitWithOptions" function added in v5.7.0. Shota FUJI authored at Shota FUJI comitted at
  25. d224558e Move embedded resources into dedicated module For testing. Child packages cannot access embedded resources. Shota FUJI authored at Shota FUJI comitted at
  26. eac513f5 Embed default templates into the binary https://tangled.org/pocka.jp/legit/issues/3 https://github.com/icyphox/legit/issues/10 Deployment & distribution convenience. Shota FUJI authored at Shota FUJI comitted at
  27. 0e496be9 Embed static files into the binary https://tangled.org/pocka.jp/legit/issues/3 Having to copy the "static/" directories is PITA, and distribution burden. Shota FUJI authored at Shota FUJI comitted at
  28. 208876a9 Don't generate bluemonday policy for each requests https://tangled.org/pocka.jp/legit/issues/4 bluemonday's documentation says the policy creation/editing is not safe to use in multiple goroutines. Now only one policy exists in the entire application and no creation/editing is happening inside HTTP server's goroutine. This also brings performance improvements. On my machine, spamming repo summary page took 10ms~11ms med (avg), but with this patch they are now 7ms~8ms med (avg). k6 run --vus 30 --iterations 1000 ./tests/k6/spam_repo_summary.js Thank Anthony Wang for sending the original patch that brought this topic in. Shota FUJI authored at Shota FUJI comitted at
  29. e39d5a3b Add link to issues page For transparency? Shota FUJI authored at Shota FUJI comitted at
  30. c2244176 Exclude unnecessary files from Nix source To prevent unnecessary rebuilds. Changes to README should not issue a new build. Shota FUJI authored at Shota FUJI comitted at