{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":739563455,"defaultBranch":"master","name":"miarec_sshfs","ownerLogin":"miarec","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-01-05T21:53:13.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/22328824?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1706048220.0","currentOid":""},"activityList":{"items":[{"before":"fa428029191a4998a01329d1ff8c3a1d58b69cff","after":"cf036a990d2e8016dee5f4e58693f9fdd9006b92","ref":"refs/heads/master","pushedAt":"2024-02-02T19:09:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Implement SSHFile.close() method to release resources asap","shortMessageHtmlLink":"Implement SSHFile.close() method to release resources asap"}},{"before":"b7d3d3ec3d7dee762de95bb7439017c5094883bb","after":"fa428029191a4998a01329d1ff8c3a1d58b69cff","ref":"refs/heads/master","pushedAt":"2024-01-23T22:16:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix potential race condition and connection leakage","shortMessageHtmlLink":"Fix potential race condition and connection leakage"}},{"before":"61b07dcb3d0eefef5c632e3f9abd35cb101725bb","after":"b7d3d3ec3d7dee762de95bb7439017c5094883bb","ref":"refs/heads/master","pushedAt":"2024-01-23T21:16:52.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Merge pull request #1 from miarec/2024-01-better-error-handling\n\nBetter error handling in situations when network is unstable","shortMessageHtmlLink":"Merge pull request #1 from miarec/2024-01-better-error-handling"}},{"before":"743427f4ec1197f470dd9038621d53acff886f5f","after":"bae2b59672620e1bb3f0585baaf6f01cddac6537","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T21:15:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Bump up version and update changelog","shortMessageHtmlLink":"Bump up version and update changelog"}},{"before":"b96c95b53ff7a7f5f47576a371608091aead4432","after":"743427f4ec1197f470dd9038621d53acff886f5f","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T21:00:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Minor cleanup of unit tests","shortMessageHtmlLink":"Minor cleanup of unit tests"}},{"before":"0b37037154d812a4699bb8d9a63a102bb2ec0e96","after":"b96c95b53ff7a7f5f47576a371608091aead4432","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T20:47:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix unit test failure due to different alphabetical order of files returned by listdir()","shortMessageHtmlLink":"Fix unit test failure due to different alphabetical order of files re…"}},{"before":"ae0870b2d6f9f076a5caf128a2c9f49ddaf630c9","after":"0b37037154d812a4699bb8d9a63a102bb2ec0e96","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T19:57:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Refactor test for lost connection","shortMessageHtmlLink":"Refactor test for lost connection"}},{"before":"6df785c2e359e17cca4ac782d133c3aeb16cd343","after":"ae0870b2d6f9f076a5caf128a2c9f49ddaf630c9","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T19:49:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Improve robustness in case of network connection issues\n\nThe SSH/SFTP connection is re-established automatically on the next operation\n\nAdditionally:\n\n- Fix a leak in SSH channels when many files are opened and closed subsequently over the same SSH socket.\nSome SFTP servers reject more than 10 active SSH channels per socket\n\n- Convert SFTP-related errors to IOError when connection is dropped when accessing SFTPFile methods (read/write/seek)\nSuch methods can be accessed in a remote code, like Apache mod_wsgi file streamer, where we do not have ability to catch FSErrors","shortMessageHtmlLink":"Improve robustness in case of network connection issues"}},{"before":"94370b313d6ed246958d0b59b7e63c7a524613ef","after":"6df785c2e359e17cca4ac782d133c3aeb16cd343","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T18:08:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Return RemoteConnectionError instead of OperationFailed when a connection to SFTP server is lost\n\nAdd unit test for such scenario","shortMessageHtmlLink":"Return RemoteConnectionError instead of OperationFailed when a connec…"}},{"before":null,"after":"94370b313d6ed246958d0b59b7e63c7a524613ef","ref":"refs/heads/2024-01-better-error-handling","pushedAt":"2024-01-23T18:06:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Make unit tests more robust: when starting Docker container, find dynamically the available port to bind","shortMessageHtmlLink":"Make unit tests more robust: when starting Docker container, find dyn…"}},{"before":"7b5070e43a49cf5683132835de8c065051e4049a","after":"61b07dcb3d0eefef5c632e3f9abd35cb101725bb","ref":"refs/heads/master","pushedAt":"2024-01-15T23:50:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Correct mistakes in Changelong","shortMessageHtmlLink":"Correct mistakes in Changelong"}},{"before":"04444561c92cc34847bebe3cdb0f772720db6671","after":"7b5070e43a49cf5683132835de8c065051e4049a","ref":"refs/heads/master","pushedAt":"2024-01-15T23:37:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix warnings in setup.cfg file \"Invalid dash-separated options\"","shortMessageHtmlLink":"Fix warnings in setup.cfg file \"Invalid dash-separated options\""}},{"before":"aa2c44a414edec907809c42b8c70710e056f6a26","after":null,"ref":"refs/tags/v2024.1.3","pushedAt":"2024-01-15T22:23:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"}},{"before":"aa2c44a414edec907809c42b8c70710e056f6a26","after":"04444561c92cc34847bebe3cdb0f772720db6671","ref":"refs/heads/master","pushedAt":"2024-01-15T22:22:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Add dates in CHANGELOG","shortMessageHtmlLink":"Add dates in CHANGELOG"}},{"before":"aa85b55013e40ec5d8f78afd7c02ee8208db18bf","after":null,"ref":"refs/tags/v2024.1.3","pushedAt":"2024-01-15T22:14:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"}},{"before":"aa85b55013e40ec5d8f78afd7c02ee8208db18bf","after":"aa2c44a414edec907809c42b8c70710e056f6a26","ref":"refs/heads/master","pushedAt":"2024-01-15T22:12:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix Github Actions URL to pypa/gh-action-pypi-publish","shortMessageHtmlLink":"Fix Github Actions URL to pypa/gh-action-pypi-publish"}},{"before":"b51a05827dd59de2dbefba6be5bd8700f262dba8","after":"aa85b55013e40ec5d8f78afd7c02ee8208db18bf","ref":"refs/heads/master","pushedAt":"2024-01-15T22:07:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix package release in GitHub Actions worflow","shortMessageHtmlLink":"Fix package release in GitHub Actions worflow"}},{"before":"82fff4938c37740de2d0b523abe412c08c39fe24","after":"b51a05827dd59de2dbefba6be5bd8700f262dba8","ref":"refs/heads/master","pushedAt":"2024-01-13T19:03:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix unit tests for shell command execution","shortMessageHtmlLink":"Fix unit tests for shell command execution"}},{"before":"eb50002d7a8dca868bb5d73a9edc1eb46eeff592","after":"82fff4938c37740de2d0b523abe412c08c39fe24","ref":"refs/heads/master","pushedAt":"2024-01-13T18:47:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Set version to 2024.1.1 and update CHANGELOG","shortMessageHtmlLink":"Set version to 2024.1.1 and update CHANGELOG"}},{"before":"ab77958408961c38f770f03836b7bef50fb9ba05","after":"eb50002d7a8dca868bb5d73a9edc1eb46eeff592","ref":"refs/heads/master","pushedAt":"2024-01-12T22:57:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix a connection leak\n\nWhen file is opened outside of a context manager, it should be closed automatically in a destructor.\nOtherwise, a connection may be left open.\nThis is especially important when remote server has a maximum connections limit.","shortMessageHtmlLink":"Fix a connection leak"}},{"before":"08cbc312639c1e5ece188067706bd8f13f122345","after":"ab77958408961c38f770f03836b7bef50fb9ba05","ref":"refs/heads/master","pushedAt":"2024-01-12T22:54:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Prolong lifetime of SSHFS object as long as all child SSHFile objects\n\nThis fixes the issue with downloading large files that are located on SFTP storage.\n\nThe filesystem object was destroyed because no one was referencing it, while the SSHFile object was still alive (opened by Apache file streamer).\nAs a result, a downloaded file was cut off (sometimes at 1MB size, sometimes bigger)","shortMessageHtmlLink":"Prolong lifetime of SSHFS object as long as all child SSHFile objects"}},{"before":"563d67df26ba1b310595fee8a61001650b288f77","after":"08cbc312639c1e5ece188067706bd8f13f122345","ref":"refs/heads/master","pushedAt":"2024-01-12T22:50:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Add POSIX RENAME command support for better bandwidth usage","shortMessageHtmlLink":"Add POSIX RENAME command support for better bandwidth usage"}},{"before":"e78239b1d049d79b1aec1c9480976cb185c5400c","after":"563d67df26ba1b310595fee8a61001650b288f77","ref":"refs/heads/master","pushedAt":"2024-01-12T22:44:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fix issue with SFTP servers, where shell is forbidden.\n\nOn some SFTP servers, a shell access is forbidden.\nThe server will close forcibly the connection if a client attempts to run any commands","shortMessageHtmlLink":"Fix issue with SFTP servers, where shell is forbidden."}},{"before":"5ffecdf9f943f0cb287646ac32b17c33cd1a3abe","after":"e78239b1d049d79b1aec1c9480976cb185c5400c","ref":"refs/heads/master","pushedAt":"2024-01-12T19:59:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Move badges to the top of README.md","shortMessageHtmlLink":"Move badges to the top of README.md"}},{"before":"15c2654e449f2b8b867bbf22cd2d4f53553e3fbc","after":"5ffecdf9f943f0cb287646ac32b17c33cd1a3abe","ref":"refs/heads/master","pushedAt":"2024-01-12T19:49:45.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Fis error in move() when preserve_time=True","shortMessageHtmlLink":"Fis error in move() when preserve_time=True"}},{"before":"50b9d1271c8c6aa342f9865bd5f28e90b8950a80","after":"15c2654e449f2b8b867bbf22cd2d4f53553e3fbc","ref":"refs/heads/master","pushedAt":"2024-01-05T23:24:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Downgrade docker version","shortMessageHtmlLink":"Downgrade docker version"}},{"before":"cafb6d9e01610c785b890fa55055b56605213785","after":"50b9d1271c8c6aa342f9865bd5f28e90b8950a80","ref":"refs/heads/master","pushedAt":"2024-01-05T23:21:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Add GitHub workflows","shortMessageHtmlLink":"Add GitHub workflows"}},{"before":"82a59d400edb6a83974658e6d6882d198455cf38","after":"cafb6d9e01610c785b890fa55055b56605213785","ref":"refs/heads/master","pushedAt":"2024-01-05T23:15:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Disable prefetch of files by default","shortMessageHtmlLink":"Disable prefetch of files by default"}},{"before":"020994638c19ec8d835bd1c3ef10d9ea8d165561","after":"82a59d400edb6a83974658e6d6882d198455cf38","ref":"refs/heads/master","pushedAt":"2024-01-05T22:44:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"genben","name":null,"path":"/genben","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3104779?s=80&v=4"},"commit":{"message":"Change name \"fs.sshfs\" to \"miarec_sshfs\"","shortMessageHtmlLink":"Change name \"fs.sshfs\" to \"miarec_sshfs\""}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD8IXUkwA","startCursor":null,"endCursor":null}},"title":"Activity · miarec/miarec_sshfs"}