{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/corefx/issues/25426","repository_url":"https://api.github.com/repos/dotnet/corefx","labels_url":"https://api.github.com/repos/dotnet/corefx/issues/25426/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/25426/comments","events_url":"https://api.github.com/repos/dotnet/corefx/issues/25426/events","html_url":"https://github.com/dotnet/corefx/pull/25426","id":275930513,"number":25426,"title":"Fast file enumeration for Windows","user":{"login":"JeremyKuhne","id":8184940,"avatar_url":"https://avatars3.githubusercontent.com/u/8184940?v=4","gravatar_id":"","url":"https://api.github.com/users/JeremyKuhne","html_url":"https://github.com/JeremyKuhne","followers_url":"https://api.github.com/users/JeremyKuhne/followers","following_url":"https://api.github.com/users/JeremyKuhne/following{/other_user}","gists_url":"https://api.github.com/users/JeremyKuhne/gists{/gist_id}","starred_url":"https://api.github.com/users/JeremyKuhne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JeremyKuhne/subscriptions","organizations_url":"https://api.github.com/users/JeremyKuhne/orgs","repos_url":"https://api.github.com/users/JeremyKuhne/repos","events_url":"https://api.github.com/users/JeremyKuhne/events{/privacy}","received_events_url":"https://api.github.com/users/JeremyKuhne/received_events","type":"User","site_admin":false},"labels":[{"id":284076100,"url":"https://api.github.com/repos/dotnet/corefx/labels/*%20NO%20MERGE%20*","name":"* NO MERGE *","color":"e11d21","default":false},{"id":154422420,"url":"https://api.github.com/repos/dotnet/corefx/labels/area-System.IO","name":"area-System.IO","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":{"login":"JeremyKuhne","id":8184940,"avatar_url":"https://avatars3.githubusercontent.com/u/8184940?v=4","gravatar_id":"","url":"https://api.github.com/users/JeremyKuhne","html_url":"https://github.com/JeremyKuhne","followers_url":"https://api.github.com/users/JeremyKuhne/followers","following_url":"https://api.github.com/users/JeremyKuhne/following{/other_user}","gists_url":"https://api.github.com/users/JeremyKuhne/gists{/gist_id}","starred_url":"https://api.github.com/users/JeremyKuhne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JeremyKuhne/subscriptions","organizations_url":"https://api.github.com/users/JeremyKuhne/orgs","repos_url":"https://api.github.com/users/JeremyKuhne/repos","events_url":"https://api.github.com/users/JeremyKuhne/events{/privacy}","received_events_url":"https://api.github.com/users/JeremyKuhne/received_events","type":"User","site_admin":false},"assignees":[{"login":"JeremyKuhne","id":8184940,"avatar_url":"https://avatars3.githubusercontent.com/u/8184940?v=4","gravatar_id":"","url":"https://api.github.com/users/JeremyKuhne","html_url":"https://github.com/JeremyKuhne","followers_url":"https://api.github.com/users/JeremyKuhne/followers","following_url":"https://api.github.com/users/JeremyKuhne/following{/other_user}","gists_url":"https://api.github.com/users/JeremyKuhne/gists{/gist_id}","starred_url":"https://api.github.com/users/JeremyKuhne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JeremyKuhne/subscriptions","organizations_url":"https://api.github.com/users/JeremyKuhne/orgs","repos_url":"https://api.github.com/users/JeremyKuhne/repos","events_url":"https://api.github.com/users/JeremyKuhne/events{/privacy}","received_events_url":"https://api.github.com/users/JeremyKuhne/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2017-11-22T03:06:28Z","updated_at":"2017-11-24T18:32:31Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/25426","html_url":"https://github.com/dotnet/corefx/pull/25426","diff_url":"https://github.com/dotnet/corefx/pull/25426.diff","patch_url":"https://github.com/dotnet/corefx/pull/25426.patch"},"body":"Implements an optimized, low allocation replacement for file enumeration on Windows. In preliminary tests this improves performance at least two fold, particularly for recursive searches.\r\n\r\nRemoves agressive filter validation.\r\n\r\nCopies and cleans up filename matching code from FileSystemWatcher.\r\n\r\nOther notes:\r\n\r\n- Attempting to build the DosMatcher for Unix as well\r\n- Specific unit tests for DosMatcher forthcoming- existing tests cover it pretty well, however\r\n- Intent is to take the internal model and make it public and cross platform to allow custom filtering and transforms for enumeration\r\n- Also investigating exposing options for error and link handling\r\n- Intent is to make the Span combine code public as well (likely as part of Path)\r\n- Need to follow up on conversion of NTSTATUS errors- might have to do a fallback to GetFileInformationFromHandleEx if the conversion API isn't actually available on OneCore\r\n- Win7 doesn't have the right options for GetFileInformationFromHandleEx and WinRT can't use the NT API"},"comment":{"url":"https://api.github.com/repos/dotnet/corefx/issues/comments/346880751","html_url":"https://github.com/dotnet/corefx/pull/25426#issuecomment-346880751","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/25426","id":346880751,"user":{"login":"JeremyKuhne","id":8184940,"avatar_url":"https://avatars3.githubusercontent.com/u/8184940?v=4","gravatar_id":"","url":"https://api.github.com/users/JeremyKuhne","html_url":"https://github.com/JeremyKuhne","followers_url":"https://api.github.com/users/JeremyKuhne/followers","following_url":"https://api.github.com/users/JeremyKuhne/following{/other_user}","gists_url":"https://api.github.com/users/JeremyKuhne/gists{/gist_id}","starred_url":"https://api.github.com/users/JeremyKuhne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JeremyKuhne/subscriptions","organizations_url":"https://api.github.com/users/JeremyKuhne/orgs","repos_url":"https://api.github.com/users/JeremyKuhne/repos","events_url":"https://api.github.com/users/JeremyKuhne/events{/privacy}","received_events_url":"https://api.github.com/users/JeremyKuhne/received_events","type":"User","site_admin":false},"created_at":"2017-11-24T18:32:31Z","updated_at":"2017-11-24T18:32:31Z","author_association":"MEMBER","body":"Marking as no merge until I think I've addressed all outstanding feedback."}}
{"actor":{"display_login":"JeremyKuhne"}}