legit

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

Commits at db55fd92813decc1e3b97a840a451e5f74de47a6

  1. 23788d5e Add dprint to nix apps Shota FUJI authored at Shota FUJI comitted at
  2. 5647b44c Make config file optional It's for OCI container. The essential config keys are now able to be populated via CLI flags. Shota FUJI authored at Shota FUJI comitted at
  3. 196f7e5d Allow omitting "server.name" option To make config file optional. Shota FUJI authored at Shota FUJI comitted at
  4. 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
  5. 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
  6. 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
  7. 99ef4012 Add tests for internal link transformer https://tangled.org/pocka.jp/legit/issues/10 Shota FUJI authored at Shota FUJI comitted at
  8. 727c9690 Remove unnecessary dot from internal links Browsers will normalize fine, though. Shota FUJI authored at Shota FUJI comitted at
  9. 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
  10. afe955fa Fix incorrect URL for image src if it has query params Shota FUJI authored at Shota FUJI comitted at
  11. 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
  12. 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
  13. 83c692e6 Fix header and footer not being sticky on wide viewport Regression introduced at somewhere. Shota FUJI authored at Shota FUJI comitted at
  14. 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
  15. ac5d7349 Fix commit hash on aside overflows horizontally https://tangled.org/pocka.jp/legit/issues/11 Shota FUJI authored at Shota FUJI comitted at
  16. 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
  17. 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
  18. 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
  19. 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
  20. d1cb4494 Delete unused struct Shota FUJI authored at Shota FUJI comitted at
  21. 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
  22. 3b77efdc Add test for not following symlink inside repo dir Shota FUJI authored at Shota FUJI comitted at
  23. 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
  24. 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
  25. bbeea586 Add simple tests These are basis for the future tests. Shota FUJI authored at Shota FUJI comitted at
  26. 3a07b138 Upgrade go-git I needed "git.InitWithOptions" function added in v5.7.0. Shota FUJI authored at Shota FUJI comitted at
  27. d224558e Move embedded resources into dedicated module For testing. Child packages cannot access embedded resources. Shota FUJI authored at Shota FUJI comitted at
  28. 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
  29. 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
  30. 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