{"push_id":896651064,"size":112,"distinct_size":104,"ref":"refs/heads/master","head":"6ba887e28b84fc54ca11a732c0585146e1b22040","before":"0d09749619f3e13e4cdb62ee3b09a60b264173ee","commits":[{"sha":"1f6d58eedc19b8a65388b750cc81a47886dce740","author":{"email":"f3ebcf422bedc3ffe7df572d2dc60f819cfb93ab@gmail.com","name":"Etienne Cimon"},"message":"leastsize should return 0 if it cannot read, rather than fail with an assertion. Secondly, the memory must be guaranteed to be freed even when the stream cannot be finalized","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/1f6d58eedc19b8a65388b750cc81a47886dce740"},{"sha":"c1e910eefc141cbcd9ab2a48ee015587b2770e5e","author":{"email":"dc0491be04e3e4db9e02abb6aff1900acc1cb848@gmail.com","name":"Steven Dwy"},"message":"Add HTTPServerRequest.routerRootDir property","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/c1e910eefc141cbcd9ab2a48ee015587b2770e5e"},{"sha":"d637999142a456ae6d3e5d6c973de167b078c653","author":{"email":"dc0491be04e3e4db9e02abb6aff1900acc1cb848@gmail.com","name":"Steven Dwy"},"message":"Move routerRootDir to HTTPServerRequest.params, caluclate just before dispatching request","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/d637999142a456ae6d3e5d6c973de167b078c653"},{"sha":"8d87bc15b7b88904e6952e479537aaa16a2feb80","author":{"email":"dc0491be04e3e4db9e02abb6aff1900acc1cb848@gmail.com","name":"Steven Dwy"},"message":"Calculate shorter paths","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/8d87bc15b7b88904e6952e479537aaa16a2feb80"},{"sha":"f58124222b01cccb7b755604d85c9f2f2f6403d7","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Add basic support for REST collections.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/f58124222b01cccb7b755604d85c9f2f2f6403d7"},{"sha":"17f01714eed68870db5274802670fd229df98dd5","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Add REST client/server collection test.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/17f01714eed68870db5274802670fd229df98dd5"},{"sha":"ac162b00863ccd39c05fcd8579c2b5700f401c72","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Add support for non-item methods in collection interfaces.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/ac162b00863ccd39c05fcd8579c2b5700f401c72"},{"sha":"16031bc2b288466ce22e842ab4661e4d5c1a57b1","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Fix REST client to process URL placeholders in all parts of the path.\n\nThe RestInterfaceSettings.baseURL part of the full URL got ignored before. This affected interface getters with a path annotation that contained placeholders.\n\nThis commit also adjusts the collections example to manually annotate the collection getters properly. In the future, these annotations should be the default.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/16031bc2b288466ce22e842ab4661e4d5c1a57b1"},{"sha":"747a9e9c7e7fcb6ad8f1dfcd787506f54752d7ab","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Use structs to define collection ID types and compute proper default paths.\n\nThe collection ID is now part of the path by default, if the id name has an underscore prefixed.\n\nTODO: validate that all interface methods use the right names for ID parameters.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/747a9e9c7e7fcb6ad8f1dfcd787506f54752d7ab"},{"sha":"e77b0656194ae4c14ed4b394aba241b07a4c40d0","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Add documentation for Collection!I.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/e77b0656194ae4c14ed4b394aba241b07a4c40d0"},{"sha":"c9185081c06874c6261e77b87c42c0a0bd2c87e8","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Validate parameter names in addition to types for Collection!I indexes.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/c9185081c06874c6261e77b87c42c0a0bd2c87e8"},{"sha":"c8163939a5bd81740309f934e5936d57b705ada7","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Add REST collection example.","distinct":false,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/c8163939a5bd81740309f934e5936d57b705ada7"},{"sha":"bda5675f830a35df11e2d6265fcfb276b0b63a6f","author":{"email":"f3ebcf422bedc3ffe7df572d2dc60f819cfb93ab@gmail.com","name":"Etienne Cimon"},"message":"Free TCP Context on connection failure\n\nImplements RAII-style freeing mechanism for manually allocated object","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/bda5675f830a35df11e2d6265fcfb276b0b63a6f"},{"sha":"55dc9f825100f2bebf6efff3d687314497ace614","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Merge pull request #1301 from Yoplitein/addBaseDir\n\nAdd HTTPServerRequest.routerRootDir property","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/55dc9f825100f2bebf6efff3d687314497ace614"},{"sha":"d665d366e5ba5696ed9b84870df3beab941850c4","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Make Path.relativeTo UFCS and add relativeToWeb.","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/d665d366e5ba5696ed9b84870df3beab941850c4"},{"sha":"15a3d3b5f1af2aef5904cb63b353a52ad25b6153","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Make URLRouter's calcBasePath use the new relativeToWeb. See #1301.","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/15a3d3b5f1af2aef5904cb63b353a52ad25b6153"},{"sha":"92df36b68560fae6697cc9c35a868ae2a52d6a93","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Let conversion errors of web path parameters result in a 404 error.\n\nIt used to result in a 500 internal server error, but a URL that fails conversion for certain URL path parts obviously doesn't correspond to an existing resource, so a 404 is preferable. (a bad request error is also preferable to 500, but that's a different story)\n\nThis also has the implication that fall-through routes now work properly:\n\n@path(\"/foo/:num\") void foo(int _num) {}\n@path(\"/foo/bar\") void bar(){}\n\nThis will now properly fall-trough the foo() route if /foo/bar is requested, where previously the two routes would have to be reversed for the bar() route to be accessible at all.","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/92df36b68560fae6697cc9c35a868ae2a52d6a93"},{"sha":"e5b6a4a9a5c5b5ab4775c3bfb269731b410ab5ee","author":{"email":"690892594970bdedc83b40be7d4c3684e0ab35ec@gmail.com","name":"kemo"},"message":"added support for websocket clients\n\nadded ws/wss to the URL package\nmade changes to the Frame struct  and Websocket class to allow it to be\nused as a server and client.","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/e5b6a4a9a5c5b5ab4775c3bfb269731b410ab5ee"},{"sha":"1733e627cf8de708910278e52005422dd275af24","author":{"email":"212b546d062ba4c87c05d1800a53f59b0f223ab0@users.noreply.github.com","name":"Daniel Cousens"},"message":"examples: fix spelling error","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/1733e627cf8de708910278e52005422dd275af24"},{"sha":"aa1ba1c9b39c1a9d0a696d4ecabda7d9c231af4a","author":{"email":"154e219ab6bfe2541ed6b4064d61c61e7c057e62@rejectedsoftware.com","name":"Sönke Ludwig"},"message":"Merge pull request #1328 from dcousens/patch-1\n\nexamples: fix spelling error","distinct":true,"url":"https://api.github.com/repos/tamediadigital/vibe.d/commits/aa1ba1c9b39c1a9d0a696d4ecabda7d9c231af4a"}]}