{"ref":"refs/heads/0.8","commits":[{"author":{"email":"711c73f64afdce07b7e38039a96d2224209e9a6c@doesnthaveone.com","name":"Chris Meller"},"sha":"b29f704c6ac4dc3882742d0ecfdc1e56e4326107","message":"Tiny improvement to Utils::debug() for outputting booleans.","url":"https://api.github.com/repos/habari/system/commits/b29f704c6ac4dc3882742d0ecfdc1e56e4326107"},{"author":{"email":"711c73f64afdce07b7e38039a96d2224209e9a6c@doesnthaveone.com","name":"Chris Meller"},"sha":"1dde6ea8fbda7e0d57bad40b4853ad6b2d0350ad","message":"Make pages cacheable.\n\nThis change, which probably shouldn't be in Theme, but can't seem to easily go anywhere else under the current design, should make all pages cacheable.\n\nFirst off it generates headers to make sure browsers actually try to cache the page. It may have been a server config on my side, but the max-age was always 0.\n\nThen we generate an ETag based on the current state of the page, in a really hacky way.\n\nIf the ETag matches the HTTP If-None-Match header sent by the browser, we throw a 304 header and kill the connection.\n\nIf the ETag doesn't match and we have loaded posts to display, we check the first (usually most recent) post's modified timestamp and generate a Last-Modified header.\n\nIf the post's last modified timestamp is less than or equal to the HTTP If-Modified-Since header, we throw a 304 header and kill the connection.\n\nLastly, if we haven't already matched anything, we'll just throw an Expires header for 30 days in the future and continue processing.","url":"https://api.github.com/repos/habari/system/commits/1dde6ea8fbda7e0d57bad40b4853ad6b2d0350ad"},{"author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@twofishcreative.com","name":"Michael C. Harris"},"sha":"30545b1b1c19f13e433a535c2248c0a9d2eacde4","message":"Match the menu if editing one's own profile.\n\nAlso match the translation string if you're editing someone else. See\nhabari/habari#246.","url":"https://api.github.com/repos/habari/system/commits/30545b1b1c19f13e433a535c2248c0a9d2eacde4"},{"author":{"email":"006e2374252b0dea3d73d4325ed738c15cc8f814@gmail.com","name":"FedericoMP"},"sha":"a15bef1482ef7297b5dff82330a0bd6d4b26fc91","message":"Admin email validated on install","url":"https://api.github.com/repos/habari/system/commits/a15bef1482ef7297b5dff82330a0bd6d4b26fc91"},{"author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@twofishcreative.com","name":"Michael C. Harris"},"sha":"b3300bdab29aec17ea83be302f6e32bf09cf861d","message":"Only say active time if we can work it out.\n\nchrismeller's suggestion to use a timestamp may be a better solution,\nbut given this is trivial and a timestamp wouldn't be backwards\ncompatible, this will do. Closes habari/habari#139.","url":"https://api.github.com/repos/habari/system/commits/b3300bdab29aec17ea83be302f6e32bf09cf861d"},{"author":{"email":"1fa2ef4755a9226cb9a0a4840bd89b158ac71391@mattread.com","name":"Matt Read"},"sha":"38cc04e5c473f7dbe4bcd3c4d6357859db9d9448","message":"automatic POT template generation","url":"https://api.github.com/repos/habari/system/commits/38cc04e5c473f7dbe4bcd3c4d6357859db9d9448"},{"author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@twofishcreative.com","name":"Michael C. Harris"},"sha":"227ff59f157ffaa89a321609f32cc2434976e759","message":"Loosen the email regex a lot.\n\nSee comments on https://github.com/habari/system/pull/9.","url":"https://api.github.com/repos/habari/system/commits/227ff59f157ffaa89a321609f32cc2434976e759"},{"author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@twofishcreative.com","name":"Michael C. Harris"},"sha":"bda7d80a4dd0e38036b01bc2075838672d258b17","message":"Reject emails with non-printable characters.\n\nWhile this validation works, there's something funky with the existing\nserver-side error handling; errors overwrite each other and aren't\ndisplayed to the user when they are set.\n\nSee https://github.com/habari/system/pull/9. Closes habari/habari@245.","url":"https://api.github.com/repos/habari/system/commits/bda7d80a4dd0e38036b01bc2075838672d258b17"},{"author":{"email":"006e2374252b0dea3d73d4325ed738c15cc8f814@gmail.com","name":"FedericoMP"},"sha":"54888bfdfa5196474c5e035b8333a5a7b191235a","message":"JS variales were leaking to global scope","url":"https://api.github.com/repos/habari/system/commits/54888bfdfa5196474c5e035b8333a5a7b191235a"},{"author":{"email":"f9125e1b3191e83ea5a902f512c26c80b0a1a669@gmail.com","name":"mikelietz"},"sha":"8ccfcca774960fdbc91b108f71a3acae7516dd06","message":"Specify a title for the menu on the Sysinfo page, such that the existing translated string would be used. Closes habari/habari#248.","url":"https://api.github.com/repos/habari/system/commits/8ccfcca774960fdbc91b108f71a3acae7516dd06"},{"author":{"email":"1594cc7c4ef8452618155c7c4d62ab14ed606a60@midnightcircus.com","name":"ringmaster"},"sha":"578243d35648d777c982f3b4085c9afbd4866935","message":"Do not add empty context to blockwrapper theme fallbacks.","url":"https://api.github.com/repos/habari/system/commits/578243d35648d777c982f3b4085c9afbd4866935"},{"author":{"email":"006e2374252b0dea3d73d4325ed738c15cc8f814@gmail.com","name":"FedericoMP"},"sha":"b7b7fbedb40b440b6a504b773e2f2e300372ef9c","message":"Paragraphs with more than one line broken by line-height in admin options page.","url":"https://api.github.com/repos/habari/system/commits/b7b7fbedb40b440b6a504b773e2f2e300372ef9c"},{"author":{"email":"006e2374252b0dea3d73d4325ed738c15cc8f814@gmail.com","name":"FedericoMP"},"sha":"e8fd0b1b12bfa9adc15eda6a13eff716690b55f8","message":"'Powered by Habari' link overlaps 'comments' link on front page.","url":"https://api.github.com/repos/habari/system/commits/e8fd0b1b12bfa9adc15eda6a13eff716690b55f8"},{"author":{"email":"006e2374252b0dea3d73d4325ed738c15cc8f814@gmail.com","name":"FedericoMP"},"sha":"ac61aac1710c023b6cfa3eee1c703c4ae8dfa11b","message":"Match vertical position of post in front page and individual post.","url":"https://api.github.com/repos/habari/system/commits/ac61aac1710c023b6cfa3eee1c703c4ae8dfa11b"},{"author":{"email":"f9125e1b3191e83ea5a902f512c26c80b0a1a669@gmail.com","name":"mikelietz"},"sha":"4d4673e0e94e3b096fee80657e14253ce45f05b5","message":"Allow translated output of the CRUD group columns on the group page. ACL::translations() is a function that does nothing and should never do anything.","url":"https://api.github.com/repos/habari/system/commits/4d4673e0e94e3b096fee80657e14253ce45f05b5"},{"author":{"email":"f9125e1b3191e83ea5a902f512c26c80b0a1a669@gmail.com","name":"mikelietz"},"sha":"f9f02700bd7def2869a5e7db30419d835017ac77","message":"Localize short month names in the timelines. 'Jan', 'Feb', and all the rest are already in the .pot file, so this adds no new strings for translators to translate.","url":"https://api.github.com/repos/habari/system/commits/f9f02700bd7def2869a5e7db30419d835017ac77"}],"head":"f9f02700bd7def2869a5e7db30419d835017ac77","push_id":52313317,"size":16}