{"push_id":611810549,"size":4,"distinct_size":0,"ref":"refs/heads/master","head":"2bc124fa3dc1770b672c76a6315058a62dc0f534","before":"dae42f7c763b5d5a6aa5b79bf979f3612aaf516b","commits":[{"sha":"f560677b1520ed6182b7416d0e83e7c4b4fd4906","author":{"email":"8a0843000f41ec6835d7763ba9d9d9d0fb3816e5@gmail.com","name":"Denis Mekhanikov"},"message":"Kotlin I/O new features: relativeTo, copyTo, copyRecursively, deleteRecursively, file tree walkers,\nfile component iterators, file roots, startsWith, endsWith, subPath, normalize, replaceBytes, replaceTest,\nadditional tests and comments","distinct":false,"url":"https://api.github.com/repos/JetBrains/kotlin/commits/f560677b1520ed6182b7416d0e83e7c4b4fd4906"},{"sha":"5b636eef7b1f4c3bad6de782d1138b36063b6722","author":{"email":"4a2b0b5b46bea3af2363e50561daa570c41959b3@jetbrains.com","name":"Mikhail Glukhikh"},"message":"Kotlin I/O review/M11 fixes: Stream --> Sequence, recurse() returned back,\nadditional helpers like File.bufferedReader() and String.byteInputStream(),\ncopyRecursively / deleteRecursively were rewritten using FileTreeWalk,\nFilePathComponents introduced as a replacement of FileIterator,\nclasses / methods / properties permissions fixed, Linux specific things,\nresolveSibling rewritten using FilePathComponents","distinct":false,"url":"https://api.github.com/repos/JetBrains/kotlin/commits/5b636eef7b1f4c3bad6de782d1138b36063b6722"},{"sha":"88733d34eb094e5cdfd53bad91f714e57e4e75af","author":{"email":"4a2b0b5b46bea3af2363e50561daa570c41959b3@jetbrains.com","name":"Mikhail Glukhikh"},"message":"Additional fix of String.getRootName() for network names, relevant test fixes","distinct":false,"url":"https://api.github.com/repos/JetBrains/kotlin/commits/88733d34eb094e5cdfd53bad91f714e57e4e75af"},{"sha":"2bc124fa3dc1770b672c76a6315058a62dc0f534","author":{"email":"4a2b0b5b46bea3af2363e50561daa570c41959b3@jetbrains.com","name":"Mikhail Glukhikh"},"message":"IO second review: empty File.subPath() allowed, OutputStream.bufferedWriter() added,\nnormalize(), startsWith(), endsWith() rewritten, LinesStream --> LinesSequence,\nFile.replaceBytes() / replaceText() rolled back to writeBytes() / writeText(),\nsome exception messages formulated more clearly, refactorings, comments,\nrelativeTo() slightly optimized, additional tests","distinct":false,"url":"https://api.github.com/repos/JetBrains/kotlin/commits/2bc124fa3dc1770b672c76a6315058a62dc0f534"}]}