)]}'
{"pkg/document/plugin/templater/v1alpha1/templater.go":[{"author":{"_account_id":29624,"name":"Alexander Hughes","email":"Alexander.Hughes@pm.me","username":"alexanderhughes"},"change_message_id":"169dac1c9ba0d89107b916e960ca8e5d51cac026","unresolved":false,"context_lines":[{"line_number":10,"context_line":" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":11,"context_line":" See the License for the specific language governing permissions and"},{"line_number":12,"context_line":" limitations under the License."},{"line_number":13,"context_line":"*/"},{"line_number":14,"context_line":"package v1alpha1"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ("}],"source_content_type":"text/x-go","patch_set":4,"id":"1f493fa4_c050c0d7","line":13,"range":{"start_line":13,"start_character":2,"end_line":13,"end_character":2},"updated":"2020-04-24 12:46:18.000000000","message":"nit: need a newline between license and package name (golint pkg/document/plugin/templater/v1alpha1/templater.go)","commit_id":"3ba5abb60e87e163ef4bba93c50a0365e033b567"}],"pkg/document/plugin/templater/v1alpha1/templater_test.go":[{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"ae846692694ef0c3ef4a4ef10006325211f8dac9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1f493fa4_45de753f","updated":"2020-04-24 19:27:23.000000000","message":"this is a great example of the sort of use case this can be applied to.","commit_id":"3ba5abb60e87e163ef4bba93c50a0365e033b567"},{"author":{"_account_id":22477,"name":"Matt McEuen","email":"matt.mceuen@att.com","username":"mattmceuen"},"change_message_id":"8e94dc23486a08703429f2126240de7f0e7d56be","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  name: notImportantHere"},{"line_number":44,"context_line":"values:"},{"line_number":45,"context_line":"  hosts:"},{"line_number":46,"context_line":"    - macAddress: 00:aa:bb:cc:dd"},{"line_number":47,"context_line":"      name: node-1"},{"line_number":48,"context_line":"    - macAddress: 00:aa:bb:cc:ee"},{"line_number":49,"context_line":"      name: node-2"},{"line_number":50,"context_line":"template: |"},{"line_number":51,"context_line":"  {{ range .hosts -}}"},{"line_number":52,"context_line":"  ---"}],"source_content_type":"text/x-go","patch_set":4,"id":"1f493fa4_5df8e979","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":18},"updated":"2020-04-27 14:50:32.000000000","message":"We\u0027ll likely want to template in values that are defined and used elsewhere.  Have you though about / tested using the ReplacementTransformer as a first plugin, to get this config set up first, and then the Templater as a second plugin?\n\nIf that works cleanly it would probably be a good Plan A.  An alternative might be for the Templater to \"find\" its configuration among the input documents using GVK, in which case those documents can be easily populated from other sources like catalogues of networking info.","commit_id":"3ba5abb60e87e163ef4bba93c50a0365e033b567"},{"author":{"_account_id":22477,"name":"Matt McEuen","email":"matt.mceuen@att.com","username":"mattmceuen"},"change_message_id":"d9eca7f04771af04d31319069eaed4129270754b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  name: notImportantHere"},{"line_number":44,"context_line":"values:"},{"line_number":45,"context_line":"  hosts:"},{"line_number":46,"context_line":"    - macAddress: 00:aa:bb:cc:dd"},{"line_number":47,"context_line":"      name: node-1"},{"line_number":48,"context_line":"    - macAddress: 00:aa:bb:cc:ee"},{"line_number":49,"context_line":"      name: node-2"},{"line_number":50,"context_line":"template: |"},{"line_number":51,"context_line":"  {{ range .hosts -}}"},{"line_number":52,"context_line":"  ---"}],"source_content_type":"text/x-go","patch_set":4,"id":"1f493fa4_5bf27607","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":18},"in_reply_to":"1f493fa4_4b0c9693","updated":"2020-04-29 16:44:59.000000000","message":"What I was meant was:  can we use the RT (or something else) to inject IPs into the generator config, or do we have to hard-code the IPs in the generator config?\n\nThe \"define in the generator config\" approach is fine if nothing else needs the IPs.  However, if other docs need those IPs, we\u0027d ideally centralize them in one place.","commit_id":"3ba5abb60e87e163ef4bba93c50a0365e033b567"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"6f04e46c034c27958decec8d3924e9b21a2ef6fd","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  name: notImportantHere"},{"line_number":44,"context_line":"values:"},{"line_number":45,"context_line":"  hosts:"},{"line_number":46,"context_line":"    - macAddress: 00:aa:bb:cc:dd"},{"line_number":47,"context_line":"      name: node-1"},{"line_number":48,"context_line":"    - macAddress: 00:aa:bb:cc:ee"},{"line_number":49,"context_line":"      name: node-2"},{"line_number":50,"context_line":"template: |"},{"line_number":51,"context_line":"  {{ range .hosts -}}"},{"line_number":52,"context_line":"  ---"}],"source_content_type":"text/x-go","patch_set":4,"id":"1f493fa4_7b25b208","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":18},"in_reply_to":"1f493fa4_5bf27607","updated":"2020-04-29 17:15:18.000000000","message":"We can do both approaches. I\u0027m completely with you, that we must centralize everything in one place. I think generators may use \u0027catalogs\u0027 or even transformer configs, (since they are all yamls) as a source of truth when they generate their data. Since we \u0027own\u0027 this plugin, we can make it like we want to achieve that goal. Another approach is to allow them to generate \u0027initial\u0027 version of yamls, but have transformer to correct the needed info according to the catalogs during transformation step. It\u0027s anyway better than to keep lots of same files.","commit_id":"3ba5abb60e87e163ef4bba93c50a0365e033b567"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"17fcf63bc18b7c5f6807df9dc46f0df08be48ee4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  name: notImportantHere"},{"line_number":44,"context_line":"values:"},{"line_number":45,"context_line":"  hosts:"},{"line_number":46,"context_line":"    - macAddress: 00:aa:bb:cc:dd"},{"line_number":47,"context_line":"      name: node-1"},{"line_number":48,"context_line":"    - macAddress: 00:aa:bb:cc:ee"},{"line_number":49,"context_line":"      name: node-2"},{"line_number":50,"context_line":"template: |"},{"line_number":51,"context_line":"  {{ range .hosts -}}"},{"line_number":52,"context_line":"  ---"}],"source_content_type":"text/x-go","patch_set":4,"id":"1f493fa4_4b0c9693","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":18},"in_reply_to":"1f493fa4_5df8e979","updated":"2020-04-28 02:59:01.000000000","message":"@Matt, first of all - this is a generator, not a transformer. They don\u0027t overlap. Transformers can\u0027t add resources, they just modify them. Generators are needed to add resources. Let\u0027s say, you need to add 40 nodes, each node - 1 yaml. generator will create 40 yamls from a single config. transformer can update these 40 yamls, but to create them you either need 40 files that look very much the same or generator. if you choose to have 40 files, that will be very cumbersome to make little changes, like let\u0027s say \u0027add 1 field\u0027 in future.","commit_id":"3ba5abb60e87e163ef4bba93c50a0365e033b567"}],"pkg/document/plugin/templater/v1alpha1/types.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"7574b8a6619394cbfc3e977e45f4d098fabb8970","unresolved":false,"context_lines":[{"line_number":21,"context_line":"// Templater plugin for airship document model"},{"line_number":22,"context_line":"type Templater struct {"},{"line_number":23,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":24,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"},{"line_number":25,"context_line":"\t// Spec contains map with object parameters to render"},{"line_number":26,"context_line":"\tSpec map[string]interface{} `json:\"spec,omitempty\"`"},{"line_number":27,"context_line":"\t// Template field is used to specify actual go-template which is going"}],"source_content_type":"text/x-go","patch_set":2,"id":"1f493fa4_3773dfe9","line":24,"updated":"2020-04-22 13:40:43.000000000","message":"could we put a blank line here for readability?","commit_id":"71b92c0bef9750d896ead4271942a5fe1070384b"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"7574b8a6619394cbfc3e977e45f4d098fabb8970","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":24,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"},{"line_number":25,"context_line":"\t// Spec contains map with object parameters to render"},{"line_number":26,"context_line":"\tSpec map[string]interface{} `json:\"spec,omitempty\"`"},{"line_number":27,"context_line":"\t// Template field is used to specify actual go-template which is going"},{"line_number":28,"context_line":"\t// to be used to render the object defined in Spec field"},{"line_number":29,"context_line":"\tTemaplte string `json:\"template,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":2,"id":"1f493fa4_1209912b","line":26,"range":{"start_line":26,"start_character":1,"end_line":26,"end_character":5},"updated":"2020-04-22 13:40:43.000000000","message":"I think \"spec\" might be a confusing name here, since it\u0027s normally used to denote the desired state of a kubernetes resource.\n\nPerhaps \"values\" would be better? It\u0027d be congruent to Helm\u0027s values.yaml, so it should be fairly familiar","commit_id":"71b92c0bef9750d896ead4271942a5fe1070384b"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"7574b8a6619394cbfc3e977e45f4d098fabb8970","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":24,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"},{"line_number":25,"context_line":"\t// Spec contains map with object parameters to render"},{"line_number":26,"context_line":"\tSpec map[string]interface{} `json:\"spec,omitempty\"`"},{"line_number":27,"context_line":"\t// Template field is used to specify actual go-template which is going"},{"line_number":28,"context_line":"\t// to be used to render the object defined in Spec field"},{"line_number":29,"context_line":"\tTemaplte string `json:\"template,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":2,"id":"1f493fa4_9780f38d","line":26,"updated":"2020-04-22 13:40:43.000000000","message":"ditto: blank line","commit_id":"71b92c0bef9750d896ead4271942a5fe1070384b"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"7574b8a6619394cbfc3e977e45f4d098fabb8970","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\tSpec map[string]interface{} `json:\"spec,omitempty\"`"},{"line_number":27,"context_line":"\t// Template field is used to specify actual go-template which is going"},{"line_number":28,"context_line":"\t// to be used to render the object defined in Spec field"},{"line_number":29,"context_line":"\tTemaplte string `json:\"template,omitempty\"`"},{"line_number":30,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"1f493fa4_57766bda","line":29,"range":{"start_line":29,"start_character":1,"end_line":29,"end_character":9},"updated":"2020-04-22 13:40:43.000000000","message":"Template","commit_id":"71b92c0bef9750d896ead4271942a5fe1070384b"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4d2848192f99d59232a7e4bb7655f4f8b07f1e8c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":24,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"\t// Spec contains map with object parameters to render"},{"line_number":27,"context_line":"\tValues map[string]interface{} `json:\"values,omitempty\"`"},{"line_number":28,"context_line":"\t// Template field is used to specify actual go-template which is going"},{"line_number":29,"context_line":"\t// to be used to render the object defined in Spec field"}],"source_content_type":"text/x-go","patch_set":3,"id":"1f493fa4_7400c068","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":8},"updated":"2020-04-22 15:15:46.000000000","message":"this needs to be updated","commit_id":"a4b66f244a962fa95f308ba0845475f321260b8e"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"a5c459661f7be17a5d45c725986e6cc5e41dd6d4","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":24,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"\t// Spec contains map with object parameters to render"},{"line_number":27,"context_line":"\tValues map[string]interface{} `json:\"values,omitempty\"`"},{"line_number":28,"context_line":"\t// Template field is used to specify actual go-template which is going"},{"line_number":29,"context_line":"\t// to be used to render the object defined in Spec field"}],"source_content_type":"text/x-go","patch_set":6,"id":"1f493fa4_f5a38efe","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":8},"updated":"2020-04-29 19:03:55.000000000","message":"This is \"Values\" now","commit_id":"8f28a7d4dacae09096eea4094605601663c0ca65"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9589be1aa86e71bbd79bbeb8a0ba1b8ad1b564d5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":24,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"\t// Spec contains map with object parameters to render"},{"line_number":27,"context_line":"\tValues map[string]interface{} `json:\"values,omitempty\"`"},{"line_number":28,"context_line":"\t// Template field is used to specify actual go-template which is going"},{"line_number":29,"context_line":"\t// to be used to render the object defined in Spec field"}],"source_content_type":"text/x-go","patch_set":6,"id":"1f493fa4_95516a39","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":8},"in_reply_to":"1f493fa4_f5a38efe","updated":"2020-04-29 19:40:04.000000000","message":"Done","commit_id":"8f28a7d4dacae09096eea4094605601663c0ca65"}]}
