AgeCommit message (Collapse)AuthorLines
Check that the outermost avatar brackets come offBryce Kwon-0/+4
With one pair of brackets, matching the innermost pair would have passed the old check as well.
Time the other filters at two lengths as wellBryce Kwon-8/+8
The avatar checks held a 40000 byte address to half a second, twenty times tighter than the readme budget that already failed on a slow host, and in stub mode nearly all of that time went on the fake digest. Link-commits and link-trailers had no check on a long input at all. The readme checks' method moves into the harness so all four share it. A single timing of each length let a busy host that took the CPU away during the longer one make a linear pass look quadratic. The lengths now take turns and the fastest timing of each counts, since a busy host can slow one timing but rarely all five. A ratio under six ends the turns at once, so only one near the bound of ten waits for all five.
Hold the avatar stub checks to an absolute hashBryce Kwon-6/+24
The stub mode checks only compared hashes with each other, and the stand-in digest took any algorithm name, so md5, a misspelt sha256 or hex in capitals passed everywhere luaossl is missing, which is every machine here. The comparisons also passed with no hash found on either side.
Prove the avatar fallback on any machineBryce Kwon-1/+2
The page without icons was checked only where cgit's Lua lacked luaossl, so a machine that has it never ran the fallback. It now runs with every Lua search path pointed at an empty directory, and the log line is compared whole. Writing the config needs no Lua, so that step runs everywhere too.
Decide every unit check skip in the shellBryce Kwon-1/+1
Where a standalone Lua had no lpeg, the harness skipped the markdown and man checks itself, behind a note the test library hides, and the test passed on the six checks left. The real luaossl checks were left out the same way. Each now shows as a skip under a prerequisite named for the interpreter, and a misspelt mode fails rather than running the default.
Fetch avatar icons without a RefererBryce Kwon-0/+1
The icons came from Gravatar or Libravatar with the page's url as the Referer, so the service learned which repositories and commits each visitor looked at.
Name a missing Lua module in the error logBryce Kwon-0/+6
Offer avatars at twice the size to dense screensBryce Kwon-0/+1
The 13 pixel icon came out blurred on the high density screens most phones and laptops have.
Hash avatar addresses with SHA-256Bryce Kwon-3/+5
Gravatar's documentation now describes SHA-256 hashes on gravatar.com alone, and Libravatar has long accepted them beside MD5.
Mark avatar icons as decorativeBryce Kwon-3/+1
A screen reader announced the service's name before every author.
Unwrap an avatar address in linear timeBryce Kwon-0/+7
An author email of 16,000 "<" took three quarters of a second per log row, and one of 64,000 took twelve seconds.
Draw no avatar when luaossl is missingBryce Kwon-2/+11
The require at the top raised as cgit loaded the filter, so every page that lists an author stopped at its first author cell with an error.
Trim avatar addresses in linear timeBryce Kwon-0/+6
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.
Clean up the whole treeBryce Kwon-2/+1
Add a test suite for the shipped extensionsBryce Kwon-0/+77