feat: Update publisher to add new cookbooks that do not exist
Related issue: gitlab-com/gl-infra/platform/runway/team#736
If an environment json file does not contain a cookbook pin, the publisher will not add it. This can lead to a situation where new cookbooks are deployed into environments before they are ready.
I had to add the 'dup' for the commit_messages to avoid a string editing due to frozen literals being true.
I was not super keen on using pretty print, but I did not know of a cleaner way to manage the json object when adding a new cookbook that did not already exist.
Edited by Cameron McFarland