{"action":"closed","number":5775,"pull_request":{"url":"https://api.github.com/repos/dotnet/corefx/pulls/5775","id":57650119,"html_url":"https://github.com/dotnet/corefx/pull/5775","diff_url":"https://github.com/dotnet/corefx/pull/5775.diff","patch_url":"https://github.com/dotnet/corefx/pull/5775.patch","issue_url":"https://api.github.com/repos/dotnet/corefx/issues/5775","number":5775,"state":"closed","locked":false,"title":"Reduce checks made by SkipWhile","user":{"login":"JonHanna","id":1253369,"avatar_url":"https://avatars.githubusercontent.com/u/1253369?v=3","gravatar_id":"","url":"https://api.github.com/users/JonHanna","html_url":"https://github.com/JonHanna","followers_url":"https://api.github.com/users/JonHanna/followers","following_url":"https://api.github.com/users/JonHanna/following{/other_user}","gists_url":"https://api.github.com/users/JonHanna/gists{/gist_id}","starred_url":"https://api.github.com/users/JonHanna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JonHanna/subscriptions","organizations_url":"https://api.github.com/users/JonHanna/orgs","repos_url":"https://api.github.com/users/JonHanna/repos","events_url":"https://api.github.com/users/JonHanna/events{/privacy}","received_events_url":"https://api.github.com/users/JonHanna/received_events","type":"User","site_admin":false},"body":"`SkipWhile` continuously checks if it needs to test the current element, and in the indexed version continuously increments the index.\r\n\r\nChange this to a direct pass-through once the first unskipped element is seen.\r\n\r\nWith a microbenchmark of:\r\n\r\n```C#\r\npublic static IEnumerable<object[]> SizeAndSkip\r\n{\r\n    get\r\n    {\r\n        yield return new object[] { 10, 5 };\r\n        yield return new object[] { 100, 5 };\r\n        yield return new object[] { 100, 50 };\r\n        yield return new object[] { 100, 95 };\r\n        yield return new object[] { 1000, 5 };\r\n        yield return new object[] { 1000, 500 };\r\n        yield return new object[] { 1000, 995 };\r\n        yield return new object[] { 10000, 5 };\r\n        yield return new object[] { 10000, 5000 };\r\n        yield return new object[] { 10000, 9995 };\r\n    }\r\n}\r\n\r\n[Benchmark]\r\n[MemberData(\"SizeAndSkip\")]\r\npublic static void MeasureSkipWhile<T>(int size, int skip)\r\n{\r\n    var source = Enumerable.Range(0, size).SkipWhile(x => x < skip);\r\n    foreach (var iteration in Benchmark.Iterations)\r\n    {\r\n        using (iteration.StartMeasurement())\r\n        {\r\n            for (int i = 0; i < 1000; i++)\r\n            {\r\n                foreach(var item in source)\r\n                {\r\n\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n```\r\n\r\nAnd the equivalent for the index-taking form, this showed a small but consistent performance improvement:\r\n\r\nNon-indexed Before:\r\n\r\nTest|Unit|Min|Mean|Max|Margin|StdDev\r\n----|----|---|----|---|------|------\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10, skip: 5)|ms|0.185|0.222|5.05|4.5%|0.159\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 5)|ms|1.53|1.73|2.69|0.6%|0.117\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 50)|ms|1.29|1.46|2.46|0.5%|0.102\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 95)|ms|1.02|1.16|2.39|0.6%|0.0979\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 5)|ms|15.6|16.4|18.9|0.7%|0.458\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 500)|ms|12.8|13.5|16.3|0.7%|0.411\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 995)|ms|9.85|10.3|12|0.7%|0.339\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5)|ms|159|162|164|0.6%|1.54\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5000)|ms|131|133|134|0.6%|1.18\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 9995)|ms|99.5|103|120|3.7%|5.62\r\n\r\nNon-indexed After:\r\n\r\nTest|Unit|Min|Mean|Max|Margin|StdDev\r\n----|----|---|----|---|------|------\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10, skip: 5)|ms|0.182|0.211|4.42|4.3%|0.147\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 5)|ms|1.47|1.63|2.54|0.5%|0.0947\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 50)|ms|1.25|1.38|2.38|0.5%|0.0885\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 95)|ms|0.995|1.1|1.66|0.4%|0.0683\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 5)|ms|14.9|15.8|17.2|0.7%|0.42\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 500)|ms|12.4|12.8|13.5|0.4%|0.207\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 995)|ms|9.52|9.85|10.3|0.3%|0.169\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5)|ms|154|156|162|0.9%|2.17\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5000)|ms|125|127|127|0.4%|0.758\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 9995)|ms|95.5|97.7|99.1|0.7%|1.03\r\n\r\nIndexed Before:\r\n\r\nTest|Unit|Min|Mean|Max|Margin|StdDev\r\n----|----|---|----|---|------|------\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10, skip: 5)|ms|0.251|0.283|6.46|4.5%|0.207\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 5)|ms|2.07|2.13|2.82|0.3%|0.0793\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 50)|ms|1.78|1.84|2.83|0.5%|0.103\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 95)|ms|1.47|1.52|2.52|0.4%|0.0761\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 5)|ms|20.1|20.5|25|1.3%|0.967\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 500)|ms|16.9|17|18.1|0.3%|0.177\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 995)|ms|13.6|13.8|16.9|0.7%|0.39\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5)|ms|200|204|232|3.0%|9.27\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5000)|ms|168|169|171|0.3%|0.868\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 9995)|ms|135|136|140|0.7%|1.49\r\n\r\nIndexed After:\r\n\r\nTest|Unit|Min|Mean|Max|Margin|StdDev\r\n----|----|---|----|---|------|------\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10, skip: 5)|ms|0.188|0.229|5.06|4.7%|0.173\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 5)|ms|1.52|1.72|2.9|0.6%|0.132\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 50)|ms|1.29|1.46|2.65|0.7%|0.126\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 100, skip: 95)|ms|1.03|1.16|2.16|0.7%|0.117\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 5)|ms|15.5|16.3|19.2|0.9%|0.615\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 500)|ms|12.7|13.4|15.8|0.8%|0.454\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 1000, skip: 995)|ms|9.86|10.4|12.9|0.7%|0.376\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5)|ms|154|162|175|2.1%|5.03\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 5000)|ms|129|134|150|3.2%|6.32\r\nSystem.Linq.Tests.Perf_Linq.MeasureSkipWhile(size: 10000, skip: 9995)|ms|99.5|102|115|3.0%|4.57\r\n\r\nThere is an observable change on the indexed version if the source has more than `int.MaxValue` elements and the amount skipped is less in that currently this throws but after this change it will not. Since an exception in this case is probably undesirable, and since it would be unlikey to occur anyway, this is probably a reasonable, if not desirable, change.","created_at":"2016-01-29T13:56:56Z","updated_at":"2016-01-29T20:25:34Z","closed_at":"2016-01-29T20:25:34Z","merged_at":"2016-01-29T20:25:34Z","merge_commit_sha":"218901c5ababe16b0facdfa1cba659ad456c7975","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/corefx/pulls/5775/commits","review_comments_url":"https://api.github.com/repos/dotnet/corefx/pulls/5775/comments","review_comment_url":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/corefx/issues/5775/comments","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/7f07f5b07a0fba316e0e9f7cd296572fe4b449b9","head":{"label":"JonHanna:skip_while_reduce_checks","ref":"skip_while_reduce_checks","sha":"7f07f5b07a0fba316e0e9f7cd296572fe4b449b9","user":{"login":"JonHanna","id":1253369,"avatar_url":"https://avatars.githubusercontent.com/u/1253369?v=3","gravatar_id":"","url":"https://api.github.com/users/JonHanna","html_url":"https://github.com/JonHanna","followers_url":"https://api.github.com/users/JonHanna/followers","following_url":"https://api.github.com/users/JonHanna/following{/other_user}","gists_url":"https://api.github.com/users/JonHanna/gists{/gist_id}","starred_url":"https://api.github.com/users/JonHanna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JonHanna/subscriptions","organizations_url":"https://api.github.com/users/JonHanna/orgs","repos_url":"https://api.github.com/users/JonHanna/repos","events_url":"https://api.github.com/users/JonHanna/events{/privacy}","received_events_url":"https://api.github.com/users/JonHanna/received_events","type":"User","site_admin":false},"repo":{"id":38018243,"name":"corefx","full_name":"JonHanna/corefx","owner":{"login":"JonHanna","id":1253369,"avatar_url":"https://avatars.githubusercontent.com/u/1253369?v=3","gravatar_id":"","url":"https://api.github.com/users/JonHanna","html_url":"https://github.com/JonHanna","followers_url":"https://api.github.com/users/JonHanna/followers","following_url":"https://api.github.com/users/JonHanna/following{/other_user}","gists_url":"https://api.github.com/users/JonHanna/gists{/gist_id}","starred_url":"https://api.github.com/users/JonHanna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JonHanna/subscriptions","organizations_url":"https://api.github.com/users/JonHanna/orgs","repos_url":"https://api.github.com/users/JonHanna/repos","events_url":"https://api.github.com/users/JonHanna/events{/privacy}","received_events_url":"https://api.github.com/users/JonHanna/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/JonHanna/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":true,"url":"https://api.github.com/repos/JonHanna/corefx","forks_url":"https://api.github.com/repos/JonHanna/corefx/forks","keys_url":"https://api.github.com/repos/JonHanna/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JonHanna/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JonHanna/corefx/teams","hooks_url":"https://api.github.com/repos/JonHanna/corefx/hooks","issue_events_url":"https://api.github.com/repos/JonHanna/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/JonHanna/corefx/events","assignees_url":"https://api.github.com/repos/JonHanna/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/JonHanna/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/JonHanna/corefx/tags","blobs_url":"https://api.github.com/repos/JonHanna/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JonHanna/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JonHanna/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/JonHanna/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JonHanna/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/JonHanna/corefx/languages","stargazers_url":"https://api.github.com/repos/JonHanna/corefx/stargazers","contributors_url":"https://api.github.com/repos/JonHanna/corefx/contributors","subscribers_url":"https://api.github.com/repos/JonHanna/corefx/subscribers","subscription_url":"https://api.github.com/repos/JonHanna/corefx/subscription","commits_url":"https://api.github.com/repos/JonHanna/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/JonHanna/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/JonHanna/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/JonHanna/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/JonHanna/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/JonHanna/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JonHanna/corefx/merges","archive_url":"https://api.github.com/repos/JonHanna/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JonHanna/corefx/downloads","issues_url":"https://api.github.com/repos/JonHanna/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/JonHanna/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/JonHanna/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/JonHanna/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JonHanna/corefx/labels{/name}","releases_url":"https://api.github.com/repos/JonHanna/corefx/releases{/id}","deployments_url":"https://api.github.com/repos/JonHanna/corefx/deployments","created_at":"2015-06-25T00:19:13Z","updated_at":"2016-01-12T23:30:27Z","pushed_at":"2016-01-29T17:29:07Z","git_url":"git://github.com/JonHanna/corefx.git","ssh_url":"git@github.com:JonHanna/corefx.git","clone_url":"https://github.com/JonHanna/corefx.git","svn_url":"https://github.com/JonHanna/corefx","homepage":"http://dotnet.github.io/core/","size":51367,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"1aa19d8b29850c114271dfcfb52da7406f0045ce","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295345,"name":"corefx","full_name":"dotnet/corefx","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/corefx","description":"This repo contains the .NET Core foundational libraries, called CoreFX. It includes classes for collections, file systems, console, XML, async and many others.","fork":false,"url":"https://api.github.com/repos/dotnet/corefx","forks_url":"https://api.github.com/repos/dotnet/corefx/forks","keys_url":"https://api.github.com/repos/dotnet/corefx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/corefx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/corefx/teams","hooks_url":"https://api.github.com/repos/dotnet/corefx/hooks","issue_events_url":"https://api.github.com/repos/dotnet/corefx/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/corefx/events","assignees_url":"https://api.github.com/repos/dotnet/corefx/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/corefx/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/corefx/tags","blobs_url":"https://api.github.com/repos/dotnet/corefx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/corefx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/corefx/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/corefx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/corefx/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/corefx/languages","stargazers_url":"https://api.github.com/repos/dotnet/corefx/stargazers","contributors_url":"https://api.github.com/repos/dotnet/corefx/contributors","subscribers_url":"https://api.github.com/repos/dotnet/corefx/subscribers","subscription_url":"https://api.github.com/repos/dotnet/corefx/subscription","commits_url":"https://api.github.com/repos/dotnet/corefx/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/corefx/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/corefx/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/corefx/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/corefx/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/corefx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/corefx/merges","archive_url":"https://api.github.com/repos/dotnet/corefx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/corefx/downloads","issues_url":"https://api.github.com/repos/dotnet/corefx/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/corefx/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/corefx/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/corefx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/corefx/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/corefx/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/corefx/deployments","created_at":"2014-11-06T23:42:48Z","updated_at":"2016-01-29T14:50:44Z","pushed_at":"2016-01-29T20:25:34Z","git_url":"git://github.com/dotnet/corefx.git","ssh_url":"git@github.com:dotnet/corefx.git","clone_url":"https://github.com/dotnet/corefx.git","svn_url":"https://github.com/dotnet/corefx","homepage":"http://dotnet.github.io/","size":61259,"stargazers_count":9046,"watchers_count":9046,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2086,"mirror_url":null,"open_issues_count":792,"forks":2086,"open_issues":792,"watchers":9046,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/5775"},"html":{"href":"https://github.com/dotnet/corefx/pull/5775"},"issue":{"href":"https://api.github.com/repos/dotnet/corefx/issues/5775"},"comments":{"href":"https://api.github.com/repos/dotnet/corefx/issues/5775/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/5775/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/corefx/pulls/5775/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/corefx/statuses/7f07f5b07a0fba316e0e9f7cd296572fe4b449b9"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"VSadov","id":8218165,"avatar_url":"https://avatars.githubusercontent.com/u/8218165?v=3","gravatar_id":"","url":"https://api.github.com/users/VSadov","html_url":"https://github.com/VSadov","followers_url":"https://api.github.com/users/VSadov/followers","following_url":"https://api.github.com/users/VSadov/following{/other_user}","gists_url":"https://api.github.com/users/VSadov/gists{/gist_id}","starred_url":"https://api.github.com/users/VSadov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VSadov/subscriptions","organizations_url":"https://api.github.com/users/VSadov/orgs","repos_url":"https://api.github.com/users/VSadov/repos","events_url":"https://api.github.com/users/VSadov/events{/privacy}","received_events_url":"https://api.github.com/users/VSadov/received_events","type":"User","site_admin":false},"comments":3,"review_comments":1,"commits":1,"additions":28,"deletions":12,"changed_files":1}}