{"action":"created","issue":{"url":"https://api.github.com/repos/codeclimate/codeclimate/issues/65","labels_url":"https://api.github.com/repos/codeclimate/codeclimate/issues/65/labels{/name}","comments_url":"https://api.github.com/repos/codeclimate/codeclimate/issues/65/comments","events_url":"https://api.github.com/repos/codeclimate/codeclimate/issues/65/events","html_url":"https://github.com/codeclimate/codeclimate/pull/65","id":96671077,"number":65,"title":"Add EngineOutputFilter, filter by check name","user":{"login":"pbrisbin","id":50812,"avatar_url":"https://avatars.githubusercontent.com/u/50812?v=3","gravatar_id":"","url":"https://api.github.com/users/pbrisbin","html_url":"https://github.com/pbrisbin","followers_url":"https://api.github.com/users/pbrisbin/followers","following_url":"https://api.github.com/users/pbrisbin/following{/other_user}","gists_url":"https://api.github.com/users/pbrisbin/gists{/gist_id}","starred_url":"https://api.github.com/users/pbrisbin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbrisbin/subscriptions","organizations_url":"https://api.github.com/users/pbrisbin/orgs","repos_url":"https://api.github.com/users/pbrisbin/repos","events_url":"https://api.github.com/users/pbrisbin/events{/privacy}","received_events_url":"https://api.github.com/users/pbrisbin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-22T21:36:49Z","updated_at":"2015-07-22T21:48:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/codeclimate/codeclimate/pulls/65","html_url":"https://github.com/codeclimate/codeclimate/pull/65","diff_url":"https://github.com/codeclimate/codeclimate/pull/65.diff","patch_url":"https://github.com/codeclimate/codeclimate/pull/65.patch"},"body":"Engines are instantiated with a string a json that corresponds to a modified\nversion of the YAML object under the engines key for the given engine. Within\nthis object, we'll now support a \"checks\" key that can hold check-specific\nconfiguration including an enabled boolean.\n\nThis commit introduces an EngineOutputFilter that accepts this engine \nconfiguration and decides if the output of the engine should be written to the\nformatter.\n\nThere is a lot of JSON generation and re-parsing going on that can seem \nredundant; I'm leaving this in place for now because orchestrating the various\nparts that would need to change to address that is difficult.\n\nOne possible approach would be to enrich the interfaces involved and not pass\nstrings around so much. Engine would take a Hash of configuration and\nstringify it only for the purposes of writing the config.json file. Formatter\ncould lose it's IO-like write interface and receive more structured data\ncentralizing the output parsing and filtering further upstream.\n\n/cc @codeclimate/review\n\nNote: the refactor PR from earlier was actually in support of an alternative\napproach that I didn't end up going with. Oh well, I still think it was\nvaluable."},"comment":{"url":"https://api.github.com/repos/codeclimate/codeclimate/issues/comments/123876525","html_url":"https://github.com/codeclimate/codeclimate/pull/65#issuecomment-123876525","issue_url":"https://api.github.com/repos/codeclimate/codeclimate/issues/65","id":123876525,"user":{"login":"pbrisbin","id":50812,"avatar_url":"https://avatars.githubusercontent.com/u/50812?v=3","gravatar_id":"","url":"https://api.github.com/users/pbrisbin","html_url":"https://github.com/pbrisbin","followers_url":"https://api.github.com/users/pbrisbin/followers","following_url":"https://api.github.com/users/pbrisbin/following{/other_user}","gists_url":"https://api.github.com/users/pbrisbin/gists{/gist_id}","starred_url":"https://api.github.com/users/pbrisbin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbrisbin/subscriptions","organizations_url":"https://api.github.com/users/pbrisbin/orgs","repos_url":"https://api.github.com/users/pbrisbin/repos","events_url":"https://api.github.com/users/pbrisbin/events{/privacy}","received_events_url":"https://api.github.com/users/pbrisbin/received_events","type":"User","site_admin":false},"created_at":"2015-07-22T21:48:03Z","updated_at":"2015-07-22T21:48:03Z","body":"Going to ignore the CC check, it's `Engine` being too long, something this PR doesn't contribute to in a meaningful way IMO."}}