{"action":"opened","issue":{"url":"https://api.github.com/repos/checkstyle/checkstyle/issues/708","labels_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/708/labels{/name}","comments_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/708/comments","events_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/708/events","html_url":"https://github.com/checkstyle/checkstyle/issues/708","id":59503830,"number":708,"title":"Check.suppressForClasses as alternative to suppressions","user":{"login":"ychulovskyy","id":350366,"avatar_url":"https://avatars.githubusercontent.com/u/350366?v=3","gravatar_id":"","url":"https://api.github.com/users/ychulovskyy","html_url":"https://github.com/ychulovskyy","followers_url":"https://api.github.com/users/ychulovskyy/followers","following_url":"https://api.github.com/users/ychulovskyy/following{/other_user}","gists_url":"https://api.github.com/users/ychulovskyy/gists{/gist_id}","starred_url":"https://api.github.com/users/ychulovskyy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ychulovskyy/subscriptions","organizations_url":"https://api.github.com/users/ychulovskyy/orgs","repos_url":"https://api.github.com/users/ychulovskyy/repos","events_url":"https://api.github.com/users/ychulovskyy/events{/privacy}","received_events_url":"https://api.github.com/users/ychulovskyy/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-03-02T16:22:29Z","updated_at":"2015-03-02T16:22:29Z","closed_at":null,"body":"When somebody tries to introduce Checkstyle to project he sees thousands of violations.\r\nCurrent approach is to create/generate suppressions XML document that contains a set of suppress elements.\r\nCons: creating it manually is painful. Generation from source code is not yet implemented. Suppression on line level is not \"stable\" because adding a line into the source file will brake suppressions.\r\n\r\nSuggested approach:\r\nThe natural way is when person goes through the vilotations and adds \"suppression\" for the rule.\r\nCodeNarc has doNotApplyToClassNames property for each rule \r\nhttps://github.com/groovy/groovy-core/blob/master/config/codenarc/codenarc.groovy\r\nWe can introduce suppressForClasses property for each Check that works with classes.\r\nField format should be natural for developer: simple class name, canonical calss name, package name with .* at the end (e.g. com.mycompany.dao.*)"}}