{"push_id":2148992334,"size":24,"distinct_size":8,"ref":"refs/heads/remove-utf8-library1","head":"5c574eb2fb794133905d1372bb1c84a44a6b8119","before":"48edd83e079befa9851f835a67a6b33798a10120","commits":[{"sha":"af2a3643c3e5fdf29ef07642f84147822d2cbeca","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Support issue history in REST API\n\nGetting an issue via REST API should return issue history information.\n\nFixes #23616","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/af2a3643c3e5fdf29ef07642f84147822d2cbeca"},{"sha":"4e764084d9352bb38743b91c748c1f8f4e9c3d52","author":{"name":"translatewiki.net","email":"5291888e31f8e151c177d0e6dd9a103a96c524b0@translatewiki.net"},"message":"Localisation updates from https://translatewiki.net.","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/4e764084d9352bb38743b91c748c1f8f4e9c3d52"},{"sha":"54783df648afc9fa10826668f668ccfa92c0e3d6","author":{"name":"Roland Becker","email":"fc7707a71fb275485f881499a576a8d106687c27@atrol.de"},"message":"Fix Manage Plugins UI for protected plugins\n\nFixes #23658","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/54783df648afc9fa10826668f668ccfa92c0e3d6"},{"sha":"27102c4861d4b81d3e5e49d703a32e7a51ceb66a","author":{"name":"translatewiki.net","email":"5291888e31f8e151c177d0e6dd9a103a96c524b0@translatewiki.net"},"message":"Localisation updates from https://translatewiki.net.","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/27102c4861d4b81d3e5e49d703a32e7a51ceb66a"},{"sha":"2fd81a3e75b737c4ff30262c20d7071e27c1d939","author":{"name":"Roland Becker","email":"fc7707a71fb275485f881499a576a8d106687c27@atrol.de"},"message":"Fix preview of non UTF-8 text attachments\n\nFunctionality of function htmlspecialchars depends on PHP version [1].\n\nThe change ensures that\n  - UTF-8 is used in any case\n  - Single non UTF-8 characters are replaced in the string\n    instead of replacing the whole string by an empty string\n\n[1] www.php.net/manual/en/function.htmlspecialchars.php\n\nFixes #23645","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/2fd81a3e75b737c4ff30262c20d7071e27c1d939"},{"sha":"df98373224bd51947a656c8db81897345f0ed9f2","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Use `ETag` and `If-None-Match` when getting issues\n\nWhen getting an issue, return an `ETag`, even if the issue doesn’t exist.\n\nWhen request contains `If-None-Match` and hash matches, then return `304 Not Modified`.\nThe 304 response will be returned whether issue exists or not.\n\nThe hash depends on:\n- a hasing version\n- user id\n- issue id\n- issue last updated\n\nFixes #23648","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/df98373224bd51947a656c8db81897345f0ed9f2"},{"sha":"4aec7f9a0c09f23ba933061caeb8a3ee1d337117","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Leverage If-None-Match when deleting issues\n\nIf client attempts to delete an issue that doesn’t exist or that was modified since issue was retrieved,\nthen fail with error `412 Precondition failed`.\n\nFixes #23650","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/4aec7f9a0c09f23ba933061caeb8a3ee1d337117"},{"sha":"cb2a453f5d4599dc3d3d000bc9b618eb6349a838","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Leverage `If-None-Match` when updating issues\n\nIf `If-None-Match` is specified and it doesn’t match latest hash, then fail with `412 Precondition failed`.\n\nAlways return the updated `ETag` header.\n\nFixes #23653","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/cb2a453f5d4599dc3d3d000bc9b618eb6349a838"},{"sha":"d7ec37d23a99028e2c85ad95908393dc2a282f53","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Return etag when getting issue that doesn’t exist\n\nFixes #23648","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/d7ec37d23a99028e2c85ad95908393dc2a282f53"},{"sha":"00dec0b17dac7e1a24da6034e1579b1183d580f6","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Validate `handler` only when being updated\n\nFixes #23654","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/00dec0b17dac7e1a24da6034e1579b1183d580f6"},{"sha":"46bbf31eb9b93a7cb17a96771e77bfc6f16e3adf","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Remove unnecessary calculation of hash\n\nFixes #23653","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/46bbf31eb9b93a7cb17a96771e77bfc6f16e3adf"},{"sha":"731be88f56a2ff17a3f350eeab776d7f016d3238","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Hash get issue output for etag\n\n- Base the etag hash calculation on hash of the result json.\n- Apply etag to get single issue or paginated output of multiple issues.\n\nFixes #23648","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/731be88f56a2ff17a3f350eeab776d7f016d3238"},{"sha":"c372927427a4cd002c2efe6ff0f2d06c4c6fea2e","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Update hash calculation for deletion of issues\n\nBase calculation of hash for etag on output of get issues and compare with provided `If-None-Match`.\n\nFixes #23650","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/c372927427a4cd002c2efe6ff0f2d06c4c6fea2e"},{"sha":"7aa72aa60fa5d3e7c3cc6cd03c0b302aff71dc2f","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Update hash calculation when updating issues\n\n- Base etag calculation of hashing of output for get issue.\n\nFixes #23653","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/7aa72aa60fa5d3e7c3cc6cd03c0b302aff71dc2f"},{"sha":"4bd8891fdbc3029aec45ccb714290b6c90ffc114","author":{"name":"Victor Boctor","email":"62d658e79284206e227acf976630b146e3692bf0@mantishub.net"},"message":"Remove `bug_hash` which is no longer used","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/4bd8891fdbc3029aec45ccb714290b6c90ffc114"},{"sha":"3b3bcb1bafe60bd5d8abc1fb05953cbf673872a0","author":{"name":"Victor Boctor","email":"4b62f8f04213c92915bd9734da84de5cdb46c96e@gmail.com"},"message":"Use `If-Match` instead of `If-None-Match` for update/delete","distinct":false,"url":"https://api.github.com/repos/atrol/mantisbt/commits/3b3bcb1bafe60bd5d8abc1fb05953cbf673872a0"},{"sha":"77fced94a0ece283aff2fa6a9a30b0c184390f2a","author":{"name":"atrol","email":"fc7707a71fb275485f881499a576a8d106687c27@atrol.de"},"message":"Replace utf8_strlen by mb_strlen","distinct":true,"url":"https://api.github.com/repos/atrol/mantisbt/commits/77fced94a0ece283aff2fa6a9a30b0c184390f2a"},{"sha":"dcdad833be2ae93c3cb271a4576c998c9127e64d","author":{"name":"atrol","email":"fc7707a71fb275485f881499a576a8d106687c27@atrol.de"},"message":"Replace utf8_substr by mb_substr","distinct":true,"url":"https://api.github.com/repos/atrol/mantisbt/commits/dcdad833be2ae93c3cb271a4576c998c9127e64d"},{"sha":"2ab74d302b51b7e59e81fc97a9af653478b1a897","author":{"name":"atrol","email":"fc7707a71fb275485f881499a576a8d106687c27@atrol.de"},"message":"Replace utf8_strtolower by mb_strtolower","distinct":true,"url":"https://api.github.com/repos/atrol/mantisbt/commits/2ab74d302b51b7e59e81fc97a9af653478b1a897"},{"sha":"409b135211d6488c521ee098d5e4e650f95f42c7","author":{"name":"atrol","email":"fc7707a71fb275485f881499a576a8d106687c27@atrol.de"},"message":"Replace utf8_strtoupper by mb_strtoupper","distinct":true,"url":"https://api.github.com/repos/atrol/mantisbt/commits/409b135211d6488c521ee098d5e4e650f95f42c7"}]}
{"actor":{"display_login":"atrol"}}