AgeCommit message (Collapse)AuthorLines
Name the log link that enable-index-links addsBryce Kwon-1/+1
The manual has named the commit page since it was written in 2008, a year after the index started linking the log instead.
Give readme headings anchors like GitHub'sBryce Kwon-1/+36
A readme's links to its own sections, as in a table of contents, had nothing on the page to land on.
Keep underscores inside words out of emphasisBryce Kwon-4/+9
Let character references through to the browserBryce Kwon-2/+17
Decoding them here instead would mean carrying every named reference HTML defines, while the browser already knows them all.
Honour backslash escapes in readmesBryce Kwon-1/+3
Link the urls and addresses in angle bracketsBryce Kwon-1/+18
Keep a wrapped list item in its listBryce Kwon-8/+20
The item's second line became a paragraph of its own and the items after it a new list, so an ordered list started counting again.
Let a table cut a paragraph shortBryce Kwon-2/+15
A table written right under a line of text came out as more of the paragraph, pipes and all.
Run a paragraph's lines together like GitHubBryce Kwon-10/+33
GitHub shows a single newline in a markdown file as a space, and roff fills the lines of a man page the same way, so text wrapped in the source came out ragged on the about page.
Leave images and badges out of rendered readmesBryce Kwon-21/+28
A relative image loaded from below the about page, which answers 404 now, and a remote one had every visitor's browser call a third party. A badge also came out as a link to its own image, wrapped in stray brackets.
Lead a readme's relative links into the treeBryce Kwon-6/+55
A browser resolved them against the about page, where nothing lives now that the page answers 404 below itself. They resolve the way GitHub resolves a readme's links instead, from the readme's directory and on the branch it was read from.
Trim readme lines in linear timeBryce Kwon-2/+26
The heading pattern backtracked over a run of spaces in cubic time and the cell trim in quadratic time, so one crafted line in a readme could hold a request for half an hour, well inside the size cap. The heading rule now also keeps a sharp that ends a word, as in "# C#".
Keep the age hook's directory group writableBryce Kwon-2/+11
The hook forced a 022 umask, so in a repository shared with a group the first pusher owned info/web and every other member's push failed to write the age file there.
Keep the cache hook's rm errors from pushersBryce Kwon-4/+4
Only the exit status was hidden, so a pusher without write access to the cache root saw a permission error per cached page, against what the hook's own comment promised.
Trim avatar addresses in linear timeBryce Kwon-2/+30
The trim pattern backtracked over a run of spaces inside an address, which a commit can carry, and a log page runs the filter for every row. Forty thousand spaces took two seconds per row.
Refuse every repository when auth-file loses reposBryce Kwon-11/+14
A repos file the filter could not open read as listing nothing, so a permission slip or a mistyped path made every protected repository public. A line naming a repository with no groups was skipped the same way, where auth-inline's empty list denies everyone.
Mark a page behind an auth filter privateBryce Kwon-14/+15
Only the login page carried a Cache-Control, so a page an auth filter had let a visitor see could be kept by a cache shared with the next visitor. The page also varies on the cookie that got them in.
Keep clone files and oversized responses out of the cacheBryce Kwon-0/+5
The dumb transport reads files that already sit on the disk, so a pack copied into a slot cost that disk twice and the request a second write of every byte. A snapshot took a slot whatever its size, so a visitor naming distinct refs and ids could fill the cache root with archives. `cache-max-slot-size`, 64 MB unless set, now serves a larger response from the lock file and drops it, along with any expired copy it would have replaced.
Gate html serving behind trust-scan-configBryce Kwon-3/+3
`enable-html-serving` makes the plain page send a repository file as text/html on the site's own origin, with no nosniff and no policy, so a scanned repository could switch it on from its git config or cgitrc without `trust-scan-config` and run script against every visitor. The warning for a key read from git config also named a null repository, because `repo->path` was set only after that file had been read.
Rename enable-trailers to enable-commit-trailersBryce Kwon-11/+12
Unify the docs, samples and extensionsBryce Kwon-207/+236
Harden the request path, scan and error recoveryBryce Kwon-6/+6
Gate scanned filters with `trust-scan-filters`Bryce Kwon-18/+16
Apply the mailmap at HEAD to every identBryce Kwon-0/+9
Add the link-trailers extensionBryce Kwon-0/+109
Split trailers out of the commit messageBryce Kwon-0/+19
Clean up the whole treeBryce Kwon-84/+43
Give the login inputs explicit field typesBryce Kwon-2/+2
Refresh the server configs and drop `unsafe-inline`Bryce Kwon-94/+71
The inline handlers and the auto-submitting selects are gone, so `script-src` no longer needs it, and t0004 now checks that the three configs pin the same policy.
Trim the comments and dead code across the treeBryce Kwon-297/+203
Rename the inconsistent config keysBryce Kwon-120/+129
noplainemail enable-plain-email noheader enable-header cache-root-ttl cache-index-ttl cache-repo-ttl cache-summary-ttl cache-scanrc-ttl cache-scan-ttl agefile age-file renamelimit rename-limit extra-head-content head-content
Remove the language breakdown from the stats pageBryce Kwon-2/+2
Replace `nbsp` spacing with CSSBryce Kwon-4/+4
Document cache directory ownershipBryce Kwon-1/+3
Refuse unknown and spoofed hostnames in nginx.confBryce Kwon-0/+31
Rework the response headers in the server configsBryce Kwon-30/+132
Drop the Last-Modified, Expires and ETag headersBryce Kwon-1/+11
Drop the update-server-info hookBryce Kwon-25/+0
Rename the agefile hook to `cgit-age`Bryce Kwon-0/+0
Let password managers fill the login formBryce Kwon-8/+8
Lazy load the avatar iconsBryce Kwon-2/+10
Restyle the filter extension headers and markupBryce Kwon-845/+917
Remove the repository homepage featureBryce Kwon-3/+0
Move the cookie-signing secret out of the cachev2.3.0Bryce Kwon-2/+2
Trim the lua headers and fix the Scintillua notesBryce Kwon-104/+18
Fix cookie name escaping and stored hash trimmingBryce Kwon-3/+26
Make the server configs complete standalone filesBryce Kwon-219/+410
Add a hook that clears cgit's cache on pushBryce Kwon-0/+38
Set a readable umask in the post-update hookBryce Kwon-0/+7
Rewrite the agefile hook for reliabilityBryce Kwon-6/+25