Commits at 62b73d36a60d0d0399740850aa983617b49b62f4
62b73d36Fix 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
a4dcd129Compile 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
290981c5Don'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
f4a70d2bFix 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
c9d54abbDeny 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
3a07b138Upgrade go-git
I needed "git.InitWithOptions" function added in v5.7.0.
Shota FUJI
authored at
Shota FUJI
comitted at
d224558eMove embedded resources into dedicated module
For testing. Child packages cannot access embedded resources.
Shota FUJI
authored at
Shota FUJI
comitted at
eac513f5Embed 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
0e496be9Embed 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
208876a9Don'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
c2244176Exclude 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
afb93b77Set "meta.mainProgram" in Nix derivation
Nix outputs warning message when **user** calls "lib.getExe" on this
package.
---
evaluation warning: getExe: Package legit does not have the meta.mainProgram
attribute. We'll assume that the main program has the same name for now, but
this behavior is deprecated, because it leads to surprising errors when the
assumption does not hold. If the package has a main program, please set
`meta.mainProgram` in its definition to make this warning go away. Otherwise,
if the package does not have a main program, or if you don't control its
definition, use getExe' to specify the name to the program, such as
lib.getExe' foo "bar".
Shota FUJI
authored at
Shota FUJI
comitted at
912daf3fSetup load testing
It's minimal, but useful for future additions.
Considering the current trend of malcious crawlers, I believe this is
necessary.
Shota FUJI
authored at
Shota FUJI
comitted at
932dc3e7Add -server.host and -server.port CLI flags
This is handy for development inside a container / VM.
Shota FUJI
authored at
Shota FUJI
comitted at
fbc46772Add footer
The motivation is to display "Powered by ...". The patch I received adds
that text to header, and I felt it stands out too much considering
frequency of user using (reading and getting actually useful
information from) it. I like the idea of "Powered by" as there were
times that text helped me discover new tools.
The most natural place to put it is footer, but my legit fork does not
have that. And just having "Powered by ..." text alone feels off, so I
added admin configurable links section for things like contact email
address, mirrors, and other social links.
I personally like the outcome.
Shota FUJI
authored at
Shota FUJI
comitted at
784362b7Display message if no README found
The info log is completely useless, as it's repo owner's fault for not
having README, instead of site admin's. I configured this in the
template so users (site admins) can customize their own view.
Shota FUJI
authored at
Shota FUJI
comitted at
2b352672Fix weird URL search parameter handling (raw=true)
A query component in URL does not have to be "key=value". In fact,
browsers interpret that as a URLSearchParams, a list of "key" or
"key=value" allowing a same key appearing multiple times. You don't have
to set "true" or "false": simply set the key or remove the one.
Shota FUJI
authored at
Shota FUJI
comitted at
09c5f871Display checked-in image in Markdown preview
Co-authored-by: Anthony Wang <a@unnamed.website>
Shota FUJI
authored at
Shota FUJI
comitted at
d3443fb7Add "gopls" to "nix develop" packages
To stop requiring devs to install gopls globally.
Shota FUJI
authored at
Shota FUJI
comitted at
66fa2bb5Add link for raw version of file
The original patch also contains support for image display in READMEs.
I (committer) removed the latter for brevity and revert-ability.
Anthony Wang
authored at
Shota FUJI
comitted at