Allow serving custom RuleSet by plugins #72
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR changes the
tflint.Ruleset
struct to the interface. This allows each plugin to serve a custom ruleset.The previous behavior can be reproduced by using the
tflint.BuiltinRuleSet
. If you do not need plugin-specific processing, please usetflint.BuiltinRuleSet
directly.Custom rulesets can be used by declared a RuleSet with a
tflint.BuiltinRuleSet
embedded in the plugin and serving it. By overwriting the following method, you can insert the process specific to the plugin.ApplyConfig
tflint.Config
contains thehcl.Body
defined in the "plugin" block. You can handle plugin-specific configurations by decoding this with a custom ruleset.Check
ApplyConfig
, custom runners that wrap provider API clients, etc., and apply them to plugin rules.