AgeCommit message (Collapse)AuthorLines
Escape the same characters in the highlighterBryce Kwon-0/+8
A lexer may hand back the bytes of one separator, or the CR and LF of a line ending, in different tokens, so line endings become line feeds before lexing and the separators are escaped once the tokens are joined.
Read a negative ref count as no limitBryce Kwon-4/+4
summary-branches, summary-tags and max-ref-count already listed every ref at 0, but a negative value reached qsort as a count and crashed the summary and refs pages, and emptied the branch switcher.
Say blame gets the source filter and line numbersBryce Kwon-9/+9
Name every trailer link-trailers.lua linksBryce Kwon-3/+3
Say that js may be given more than onceBryce Kwon-2/+4
Add html serving to the scanned cgitrc trust listBryce Kwon-3/+4
a75603e gated the key and named it under trust-scan-config, but this section kept the list from before.
Describe root-readme as the site's about pageBryce Kwon-13/+15
Say which filters get the repository variablesBryce Kwon-1/+3
Leave readme out of what scan-path fixesBryce Kwon-3/+5
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.
Hand the about filter the tree url its links needBryce Kwon-11/+17
With nothing below the about page, a readme's relative links have to be written against the tree, and only cgit knows how this site spells the url of a tree page and which ref the readme was read from. Both reach the filter already escaped for a url, built by the same writer as cgit's own links.
Answer 404 for any path below the about pageBryce Kwon-4/+1
The about page served every file beside the readme as a page of its own, through the about filter, and answered 200 for directories and missing files alike. Images it passed through came from the root of the default branch whatever the readme's own directory and ref. A readme on disk exposed its whole directory this way.
Keep date-format=local-local from failing pagesBryce Kwon-6/+6
The guard took local as a name that may carry the -local suffix, but git reads local only as a whole alias of default-local and dies on anything after it, so that one value turned every page into a 500.
Stop caching clone files and oversized responsesBryce Kwon-2/+11
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-7/+10
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.
Keep the Lua-less build compilingBryce Kwon-1/+2
cgit_abort_filters unhooks the Lua write interposer under NO_LUA too, where neither the hook nor its state exists, so make NO_LUA=1 and the default mode of tools/release-build.sh have not compiled since the die path learned to take stdout back from a filter. The suite now builds and runs that variant as well, and a lua: filter in such a build is refused with a message naming the cause instead of an unknown filter type.
Rename enable-trailers to enable-commit-trailersBryce Kwon-22/+22
Unify the docs, samples and extensionsBryce Kwon-212/+201
Harden the request path, scan and error recoveryBryce Kwon-19/+22
Gate scanned filters with trust-scan-filtersBryce Kwon-26/+25
Apply the mailmap at HEAD to every identBryce Kwon-0/+13
Split trailers out of the commit messageBryce Kwon-0/+38
Trim the comments and dead code across the treeBryce Kwon-2/+2
Convert the manual page to plain MANUAL.txtBryce Kwon-417/+394
Beyond the format change, the documented defaults and inheritance notes now match what the code does.
Document the environment macro expansion readsBryce Kwon-2/+14
Remove the language breakdown from the stats pageBryce Kwon-3/+3
Resolve submodule links from .gitmodulesBryce Kwon-4/+21
Document cache directory ownershipBryce Kwon-1/+10
Cache id-pinned pages and snapshots as staticBryce Kwon-1/+3
Remove the repository homepage featureBryce Kwon-6/+3
Add enable-relative-dates and date-formatBryce Kwon-1/+20
Drop the help tab and its built-in guideBryce Kwon-6/+0
Reorganise the tree into vendor/ and custom/Bryce Kwon-3/+3
Drop the example cgitrc from the manualBryce Kwon-190/+0
Swap the browser markdown renderer for a filterBryce Kwon-13/+6
The readme is now escaped plain text unless about-filter points at the new about-render.lua, which renders markdown, man pages and plain text server-side. The enable-markdown setting goes away with the renderer.
Add max-patch-count to bound the patch viewBryce Kwon-0/+5
Emit a conforming rel=icon for the favicon linkBryce Kwon-3/+4
Gate the stats page and add a language breakdownBryce Kwon-3/+14
The max-stats setting now only bounds the selectable periods and no longer doubles as the enable switch. The tree walk runs before the history walk on purpose. Releasing commit memory while walking history resets each commit slab index, and a commit graph lookup afterwards would read another commit slot and walk the wrong tree. The stats fixture writes a commit graph so the tests cover that path. The history walk bounds the window in process rather than passing a formatted since date to setup_revisions, and parses each commit once.
Remove the owner filter hookBryce Kwon-18/+0
Move syntax highlighting to a Lua source filterBryce Kwon-5/+7
Stat oversized diffs instead of inlining themBryce Kwon-0/+12
Cap and paginate the ref listingsBryce Kwon-0/+6
Add a help page with common workflowsBryce Kwon-0/+6
Prune and rename the filter extensionsBryce Kwon-6/+7
The Gentoo LDAP filter is distro specific, the owner example only restates what cgit already renders, and the about converters are superseded by the built-in markdown rendering. The two auth filters do the same job and differ only in where their accounts live, so they become auth-inline for accounts kept in the script and auth-file for accounts kept on disk.
Respect the cgitrc order of sectionsBryce Kwon-3/+3
The default sorted the sections and the repositories within them by name, so the order written in the cgitrc file was ignored.
Check max-blob-size up front and default to 10 MBBryce Kwon-2/+4
Only the tree view honoured the limit, and only after loading the whole object. The default moves from unlimited to 10 MB so a fresh install never buffers a huge object whole. Zero still turns the limit off.
Render README markdown in the browserBryce Kwon-4/+13
cgit had no markdown support of its own, so a readme was rendered through an external python filter or not at all. Escaping the source and formatting it in cgit.js keeps the work in the browser like the blob highlighter, and the page stays readable as plain text without scripting.
Add built-in syntax highlightingBryce Kwon-4/+6
Highlighting previously required a source filter shelling out to something like Pygments. A configured source filter still takes precedence, every character is preserved so the line gutter stays aligned, and large files are skipped.
Add enable-tree-group-dirs to list dirs firstBryce Kwon-0/+6
Gate the cache listing behind enable-cache-listBryce Kwon-0/+6
The ls_cache page printed the cache directory path and the urls other visitors had requested, with no gate at all.