-------------------
Added
~~~~~
* Added ``Reporter`` and ``JSONReporter`` classes to be able to expose execution results
* Add new config option ``report_name`` to the available settings
* New exception type ``PreconditionFailedError`` indicating that the precondition failed and no need to raise an error
Changed
~~~~~~~
* Make sure children and pipe can be set at the same time
* Simplify yaml key rename logic
* ``SectionRenamed`` not raises error if old section name is not represented but the new one
* ``OptionRenamed`` not raises error if old option name is not represented but the new one
* ``LineReplaced`` not raises error if old line is not represented but the new one
* Remove redundant way of getting rules of a law (https://github.com/gabor-boros/hammurabi/issues/45)
* GitHub mixin now returns the URL of the open PR's URL; if an existing PR found, that PR's URL will be returned
* Pillar prepare its Reporter for report generation
* Pillar has a new argument to set the pillar's reporter easily
* CLI's enforce command now calls the Pillar's prepared Reporter to do the report
* "No changes made by" messages now info logs instead of warnings
* Commit changes only if the Law has passing rules
* If ``PreconditionFailedError`` raised, do not log error messages, log a warning instead
* ``LineExists`` will not raise an exception if multiple targets found, instead it will select the last match as target
* Have better PR description formatting
Fixed
~~~~~
* Fixed a dictionary traversal issue regarding yaml file support
* Fixed "Failed Rules" formatting of PR description by removing ``\xa0`` character
* Fixed no Rule name in PR description if the Law did not change anything issue
* Fixed nested rule indentation PR description markup
* Fixed an issue with ``LineReplaced``, if the input file is empty, raise an exception