{"action":"created","comment":{"url":"https://api.github.com/repos/exercism/fsharp/pulls/comments/223255044","pull_request_review_id":162334675,"id":223255044,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMzI1NTA0NA==","diff_hunk":"@@ -0,0 +1,92 @@\n+module Generators.Reporting\n+\n+open Serilog\n+open CanonicalData\n+open Exercise\n+open Options\n+       \n+let private isOutdated (exercise: GeneratorExercise) options (parseCanonicalData':string -> CanonicalData) =\n+    let cData = parseCanonicalData' exercise.Name\n+    match cData.Version,exercise.ReadVersion() with\n+    | canonVersion,exerciseVersion when canonVersion.Equals exerciseVersion -> false\n+    | _,_ -> true\n+    \n+let private filterByStatus options (parseCanonicalData':string -> CanonicalData) (exercise: Exercise) =\n+    match options.Status, exercise with\n+    | None, _ -> true\n+    | Some Status.Implemented,   Exercise.Generator _     -> true\n+    | Some Status.Unimplemented, Exercise.Unimplemented _ -> true\n+    | Some Status.MissingData,   Exercise.MissingData _   -> true\n+    | Some Status.Deprecated,    Exercise.Deprecated _    -> true\n+    | Some Status.Custom,        Exercise.Custom _        -> true\n+    | Some Status.Outdated,      Exercise.Generator exercise when isOutdated exercise options parseCanonicalData' -> true\n+    | Some Status.All,           _                        -> true\n+    | _ -> false\n+    \n+type SummaryTypes =\n+    | Custom of string\n+    | Unimplemented of string\n+    | MissingData of string\n+    | Deprecated of string\n+    | UpToDate of string\n+    | Outdated of string * string * string\n+    \n+let nameFromSummaryType = function\n+    | Custom n -> n\n+    | Unimplemented  n -> n\n+    | MissingData n -> n\n+    | Deprecated n -> n\n+    | UpToDate n -> n\n+    | Outdated (n,_,_) -> n\n+    \n+let private summarizeExercise options (parseCanonicalData':string -> CanonicalData) (exercise:Exercise)  =\n+\n+    match exercise with\n+    | Exercise.Custom custom ->                 SummaryTypes.Custom custom.Name\n+    | Exercise.Unimplemented unimplemented ->   SummaryTypes.Unimplemented unimplemented.Name\n+    | Exercise.MissingData missingData ->       SummaryTypes.MissingData missingData.Name\n+    | Exercise.Deprecated deprecated ->         SummaryTypes.Deprecated deprecated.Name\n+    | Exercise.Generator generator ->\n+        let cData = parseCanonicalData' generator.Name\n+        \n+        match generator.ReadVersion (), cData.Version with\n+        | a,b when a.Equals b ->  UpToDate generator.Name","path":"generators/Reporting.fs","position":53,"original_position":53,"commit_id":"4f8dc01767376c390020386b50708abc4f08c3aa","original_commit_id":"4f8dc01767376c390020386b50708abc4f08c3aa","user":{"login":"ErikSchierboom","id":135246,"node_id":"MDQ6VXNlcjEzNTI0Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/135246?v=4","gravatar_id":"","url":"https://api.github.com/users/ErikSchierboom","html_url":"https://github.com/ErikSchierboom","followers_url":"https://api.github.com/users/ErikSchierboom/followers","following_url":"https://api.github.com/users/ErikSchierboom/following{/other_user}","gists_url":"https://api.github.com/users/ErikSchierboom/gists{/gist_id}","starred_url":"https://api.github.com/users/ErikSchierboom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ErikSchierboom/subscriptions","organizations_url":"https://api.github.com/users/ErikSchierboom/orgs","repos_url":"https://api.github.com/users/ErikSchierboom/repos","events_url":"https://api.github.com/users/ErikSchierboom/events{/privacy}","received_events_url":"https://api.github.com/users/ErikSchierboom/received_events","type":"User","site_admin":false},"body":"Could you add a spaces after the commas? Also there is one space too many after the `->`","created_at":"2018-10-08T06:14:27Z","updated_at":"2018-10-08T06:30:36Z","html_url":"https://github.com/exercism/fsharp/pull/629#discussion_r223255044","pull_request_url":"https://api.github.com/repos/exercism/fsharp/pulls/629","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/exercism/fsharp/pulls/comments/223255044"},"html":{"href":"https://github.com/exercism/fsharp/pull/629#discussion_r223255044"},"pull_request":{"href":"https://api.github.com/repos/exercism/fsharp/pulls/629"}}},"pull_request":{"url":"https://api.github.com/repos/exercism/fsharp/pulls/629","id":220998515,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIwOTk4NTE1","html_url":"https://github.com/exercism/fsharp/pull/629","diff_url":"https://github.com/exercism/fsharp/pull/629.diff","patch_url":"https://github.com/exercism/fsharp/pull/629.patch","issue_url":"https://api.github.com/repos/exercism/fsharp/issues/629","number":629,"state":"open","locked":false,"title":"Generator lists outdated exercises","user":{"login":"jrr","id":164652,"node_id":"MDQ6VXNlcjE2NDY1Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/164652?v=4","gravatar_id":"","url":"https://api.github.com/users/jrr","html_url":"https://github.com/jrr","followers_url":"https://api.github.com/users/jrr/followers","following_url":"https://api.github.com/users/jrr/following{/other_user}","gists_url":"https://api.github.com/users/jrr/gists{/gist_id}","starred_url":"https://api.github.com/users/jrr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrr/subscriptions","organizations_url":"https://api.github.com/users/jrr/orgs","repos_url":"https://api.github.com/users/jrr/repos","events_url":"https://api.github.com/users/jrr/events{/privacy}","received_events_url":"https://api.github.com/users/jrr/received_events","type":"User","site_admin":false},"body":"I took a crack at https://github.com/exercism/fsharp/issues/581 .\r\n\r\n\r\n**Generation** (`-e`) should work as before, except that now it can't be combined with `-s`.\r\n\r\n**Status** (`-s`) now works by itself, listing exercises of the specified status. Here's how it looks with `-s outdated`:\r\n```\r\n[23:38:48 INF] Listing exercises with status Outdated...\r\n[23:38:48 INF] Updating repository to latest version...\r\n[23:38:48 INF] Updated repository to latest version.\r\n[23:38:49 INF] 20 exercises are outdated:\r\n[23:38:49 INF]  allergies                  (1.1.0 -> 1.2.0)\r\n[23:38:49 INF]  alphametics                (1.2.0 -> 1.3.0)\r\n[23:38:49 INF]  anagram                    (1.3.0 -> 1.4.0)\r\n[23:38:49 INF]  atbash-cipher              (1.1.0 -> 1.2.0)\r\n[23:38:49 INF]  book-store                 (1.3.0 -> 1.4.0)\r\n[23:38:49 INF]  bracket-push               (1.3.0 -> 1.4.0)\r\n(...)\r\n```\r\n\r\n`-s all` will list all exercises, grouped by category.\r\n\r\n**--help** will no longer throw an error,  and there's now some usage information:\r\n\r\n```\r\nUSAGE:\r\nGenerate all exercises:\r\ndotnet run\r\nGenerate the exercise named 'foobar':\r\ndotnet run --exercise foobar\r\nList outdated exercises:\r\ndotnet run --status outdated\r\n```\r\n\r\n","created_at":"2018-10-08T03:55:05Z","updated_at":"2018-10-08T06:30:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3106479c6461128cfdcdb55926505cda2c548ce4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/exercism/fsharp/pulls/629/commits","review_comments_url":"https://api.github.com/repos/exercism/fsharp/pulls/629/comments","review_comment_url":"https://api.github.com/repos/exercism/fsharp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/exercism/fsharp/issues/629/comments","statuses_url":"https://api.github.com/repos/exercism/fsharp/statuses/4f8dc01767376c390020386b50708abc4f08c3aa","head":{"label":"jrr:outdated","ref":"outdated","sha":"4f8dc01767376c390020386b50708abc4f08c3aa","user":{"login":"jrr","id":164652,"node_id":"MDQ6VXNlcjE2NDY1Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/164652?v=4","gravatar_id":"","url":"https://api.github.com/users/jrr","html_url":"https://github.com/jrr","followers_url":"https://api.github.com/users/jrr/followers","following_url":"https://api.github.com/users/jrr/following{/other_user}","gists_url":"https://api.github.com/users/jrr/gists{/gist_id}","starred_url":"https://api.github.com/users/jrr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrr/subscriptions","organizations_url":"https://api.github.com/users/jrr/orgs","repos_url":"https://api.github.com/users/jrr/repos","events_url":"https://api.github.com/users/jrr/events{/privacy}","received_events_url":"https://api.github.com/users/jrr/received_events","type":"User","site_admin":false},"repo":{"id":139629056,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk2MjkwNTY=","name":"fsharp","full_name":"jrr/fsharp","private":false,"owner":{"login":"jrr","id":164652,"node_id":"MDQ6VXNlcjE2NDY1Mg==","avatar_url":"https://avatars0.githubusercontent.com/u/164652?v=4","gravatar_id":"","url":"https://api.github.com/users/jrr","html_url":"https://github.com/jrr","followers_url":"https://api.github.com/users/jrr/followers","following_url":"https://api.github.com/users/jrr/following{/other_user}","gists_url":"https://api.github.com/users/jrr/gists{/gist_id}","starred_url":"https://api.github.com/users/jrr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrr/subscriptions","organizations_url":"https://api.github.com/users/jrr/orgs","repos_url":"https://api.github.com/users/jrr/repos","events_url":"https://api.github.com/users/jrr/events{/privacy}","received_events_url":"https://api.github.com/users/jrr/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jrr/fsharp","description":"Exercism exercises in F#.","fork":true,"url":"https://api.github.com/repos/jrr/fsharp","forks_url":"https://api.github.com/repos/jrr/fsharp/forks","keys_url":"https://api.github.com/repos/jrr/fsharp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jrr/fsharp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jrr/fsharp/teams","hooks_url":"https://api.github.com/repos/jrr/fsharp/hooks","issue_events_url":"https://api.github.com/repos/jrr/fsharp/issues/events{/number}","events_url":"https://api.github.com/repos/jrr/fsharp/events","assignees_url":"https://api.github.com/repos/jrr/fsharp/assignees{/user}","branches_url":"https://api.github.com/repos/jrr/fsharp/branches{/branch}","tags_url":"https://api.github.com/repos/jrr/fsharp/tags","blobs_url":"https://api.github.com/repos/jrr/fsharp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jrr/fsharp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jrr/fsharp/git/refs{/sha}","trees_url":"https://api.github.com/repos/jrr/fsharp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jrr/fsharp/statuses/{sha}","languages_url":"https://api.github.com/repos/jrr/fsharp/languages","stargazers_url":"https://api.github.com/repos/jrr/fsharp/stargazers","contributors_url":"https://api.github.com/repos/jrr/fsharp/contributors","subscribers_url":"https://api.github.com/repos/jrr/fsharp/subscribers","subscription_url":"https://api.github.com/repos/jrr/fsharp/subscription","commits_url":"https://api.github.com/repos/jrr/fsharp/commits{/sha}","git_commits_url":"https://api.github.com/repos/jrr/fsharp/git/commits{/sha}","comments_url":"https://api.github.com/repos/jrr/fsharp/comments{/number}","issue_comment_url":"https://api.github.com/repos/jrr/fsharp/issues/comments{/number}","contents_url":"https://api.github.com/repos/jrr/fsharp/contents/{+path}","compare_url":"https://api.github.com/repos/jrr/fsharp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jrr/fsharp/merges","archive_url":"https://api.github.com/repos/jrr/fsharp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jrr/fsharp/downloads","issues_url":"https://api.github.com/repos/jrr/fsharp/issues{/number}","pulls_url":"https://api.github.com/repos/jrr/fsharp/pulls{/number}","milestones_url":"https://api.github.com/repos/jrr/fsharp/milestones{/number}","notifications_url":"https://api.github.com/repos/jrr/fsharp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jrr/fsharp/labels{/name}","releases_url":"https://api.github.com/repos/jrr/fsharp/releases{/id}","deployments_url":"https://api.github.com/repos/jrr/fsharp/deployments","created_at":"2018-07-03T19:29:23Z","updated_at":"2018-10-05T02:53:51Z","pushed_at":"2018-10-08T04:39:06Z","git_url":"git://github.com/jrr/fsharp.git","ssh_url":"git@github.com:jrr/fsharp.git","clone_url":"https://github.com/jrr/fsharp.git","svn_url":"https://github.com/jrr/fsharp","homepage":"http://exercism.io/languages/fsharp","size":1615,"stargazers_count":0,"watchers_count":0,"language":"F#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"exercism:master","ref":"master","sha":"671e5a56b17ce04e87dfe2db81c086217076aa1e","user":{"login":"exercism","id":5624255,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU2MjQyNTU=","avatar_url":"https://avatars0.githubusercontent.com/u/5624255?v=4","gravatar_id":"","url":"https://api.github.com/users/exercism","html_url":"https://github.com/exercism","followers_url":"https://api.github.com/users/exercism/followers","following_url":"https://api.github.com/users/exercism/following{/other_user}","gists_url":"https://api.github.com/users/exercism/gists{/gist_id}","starred_url":"https://api.github.com/users/exercism/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exercism/subscriptions","organizations_url":"https://api.github.com/users/exercism/orgs","repos_url":"https://api.github.com/users/exercism/repos","events_url":"https://api.github.com/users/exercism/events{/privacy}","received_events_url":"https://api.github.com/users/exercism/received_events","type":"Organization","site_admin":false},"repo":{"id":19382147,"node_id":"MDEwOlJlcG9zaXRvcnkxOTM4MjE0Nw==","name":"fsharp","full_name":"exercism/fsharp","private":false,"owner":{"login":"exercism","id":5624255,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU2MjQyNTU=","avatar_url":"https://avatars0.githubusercontent.com/u/5624255?v=4","gravatar_id":"","url":"https://api.github.com/users/exercism","html_url":"https://github.com/exercism","followers_url":"https://api.github.com/users/exercism/followers","following_url":"https://api.github.com/users/exercism/following{/other_user}","gists_url":"https://api.github.com/users/exercism/gists{/gist_id}","starred_url":"https://api.github.com/users/exercism/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exercism/subscriptions","organizations_url":"https://api.github.com/users/exercism/orgs","repos_url":"https://api.github.com/users/exercism/repos","events_url":"https://api.github.com/users/exercism/events{/privacy}","received_events_url":"https://api.github.com/users/exercism/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/exercism/fsharp","description":"Exercism exercises in F#.","fork":false,"url":"https://api.github.com/repos/exercism/fsharp","forks_url":"https://api.github.com/repos/exercism/fsharp/forks","keys_url":"https://api.github.com/repos/exercism/fsharp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/exercism/fsharp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/exercism/fsharp/teams","hooks_url":"https://api.github.com/repos/exercism/fsharp/hooks","issue_events_url":"https://api.github.com/repos/exercism/fsharp/issues/events{/number}","events_url":"https://api.github.com/repos/exercism/fsharp/events","assignees_url":"https://api.github.com/repos/exercism/fsharp/assignees{/user}","branches_url":"https://api.github.com/repos/exercism/fsharp/branches{/branch}","tags_url":"https://api.github.com/repos/exercism/fsharp/tags","blobs_url":"https://api.github.com/repos/exercism/fsharp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/exercism/fsharp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/exercism/fsharp/git/refs{/sha}","trees_url":"https://api.github.com/repos/exercism/fsharp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/exercism/fsharp/statuses/{sha}","languages_url":"https://api.github.com/repos/exercism/fsharp/languages","stargazers_url":"https://api.github.com/repos/exercism/fsharp/stargazers","contributors_url":"https://api.github.com/repos/exercism/fsharp/contributors","subscribers_url":"https://api.github.com/repos/exercism/fsharp/subscribers","subscription_url":"https://api.github.com/repos/exercism/fsharp/subscription","commits_url":"https://api.github.com/repos/exercism/fsharp/commits{/sha}","git_commits_url":"https://api.github.com/repos/exercism/fsharp/git/commits{/sha}","comments_url":"https://api.github.com/repos/exercism/fsharp/comments{/number}","issue_comment_url":"https://api.github.com/repos/exercism/fsharp/issues/comments{/number}","contents_url":"https://api.github.com/repos/exercism/fsharp/contents/{+path}","compare_url":"https://api.github.com/repos/exercism/fsharp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/exercism/fsharp/merges","archive_url":"https://api.github.com/repos/exercism/fsharp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/exercism/fsharp/downloads","issues_url":"https://api.github.com/repos/exercism/fsharp/issues{/number}","pulls_url":"https://api.github.com/repos/exercism/fsharp/pulls{/number}","milestones_url":"https://api.github.com/repos/exercism/fsharp/milestones{/number}","notifications_url":"https://api.github.com/repos/exercism/fsharp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/exercism/fsharp/labels{/name}","releases_url":"https://api.github.com/repos/exercism/fsharp/releases{/id}","deployments_url":"https://api.github.com/repos/exercism/fsharp/deployments","created_at":"2014-05-02T17:08:31Z","updated_at":"2018-10-07T15:19:37Z","pushed_at":"2018-10-08T04:39:07Z","git_url":"git://github.com/exercism/fsharp.git","ssh_url":"git@github.com:exercism/fsharp.git","clone_url":"https://github.com/exercism/fsharp.git","svn_url":"https://github.com/exercism/fsharp","homepage":"http://exercism.io/languages/fsharp","size":1607,"stargazers_count":39,"watchers_count":39,"language":"F#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":51,"mirror_url":null,"archived":false,"open_issues_count":20,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":51,"open_issues":20,"watchers":39,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/exercism/fsharp/pulls/629"},"html":{"href":"https://github.com/exercism/fsharp/pull/629"},"issue":{"href":"https://api.github.com/repos/exercism/fsharp/issues/629"},"comments":{"href":"https://api.github.com/repos/exercism/fsharp/issues/629/comments"},"review_comments":{"href":"https://api.github.com/repos/exercism/fsharp/pulls/629/comments"},"review_comment":{"href":"https://api.github.com/repos/exercism/fsharp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/exercism/fsharp/pulls/629/commits"},"statuses":{"href":"https://api.github.com/repos/exercism/fsharp/statuses/4f8dc01767376c390020386b50708abc4f08c3aa"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ErikSchierboom"}}