)]}'
{"cmd/config/config.go":[{"author":{"_account_id":29624,"name":"Alexander Hughes","email":"Alexander.Hughes@pm.me","username":"alexanderhughes"},"change_message_id":"b37609d115099b23dd0f0f5128c01ad5225e67a2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigSetAuthInfo(rootSettings))"},{"line_number":24,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigGetAuthInfo(rootSettings))"},{"line_number":25,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigUseContext(rootSettings))"},{"line_number":26,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigGetModuleConfig(rootSettings))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"\treturn configRootCmd"},{"line_number":29,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"df33271e_8b6607ed","line":26,"range":{"start_line":26,"start_character":1,"end_line":26,"end_character":67},"updated":"2020-03-24 16:40:29.000000000","message":"please document in cli documentation","commit_id":"659ee849753e98abbeac8c4fe99de806d491dfe8"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"61861435aa09bff1a5a83a7a38fc2b0d5bba8edc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigSetAuthInfo(rootSettings))"},{"line_number":24,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigGetAuthInfo(rootSettings))"},{"line_number":25,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigUseContext(rootSettings))"},{"line_number":26,"context_line":"\tconfigRootCmd.AddCommand(NewCmdConfigGetModuleConfig(rootSettings))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"\treturn configRootCmd"},{"line_number":29,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"df33271e_2bf09b67","line":26,"range":{"start_line":26,"start_character":1,"end_line":26,"end_character":67},"in_reply_to":"df33271e_8b6607ed","updated":"2020-03-24 17:00:51.000000000","message":"Done","commit_id":"659ee849753e98abbeac8c4fe99de806d491dfe8"}],"cmd/config/get_module.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4913b0116b5f2974a14361b49294d7f6adcd8a5c","unresolved":false,"context_lines":[{"line_number":26,"context_line":")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"var ("},{"line_number":29,"context_line":"\tgetModuleConfigLong \u003d \"Display a specific module config or all defined modules configs if no name is provided\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"\tgetModuleConfigExample \u003d fmt.Sprintf(`"},{"line_number":32,"context_line":"# List all the modules configs airshipctl knows about"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_0f803bbe","line":29,"range":{"start_line":29,"start_character":16,"end_line":29,"end_character":20},"updated":"2020-02-19 20:16:58.000000000","message":"Short","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"c55ab9adcc76724139fee6d4579fe59cc4598278","unresolved":false,"context_lines":[{"line_number":26,"context_line":")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"var ("},{"line_number":29,"context_line":"\tgetModuleConfigLong \u003d \"Display a specific module config or all defined modules configs if no name is provided\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"\tgetModuleConfigExample \u003d fmt.Sprintf(`"},{"line_number":32,"context_line":"# List all the modules configs airshipctl knows about"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_614c6340","line":29,"range":{"start_line":29,"start_character":16,"end_line":29,"end_character":20},"in_reply_to":"3fa7e38b_0f803bbe","updated":"2020-02-19 20:24:28.000000000","message":"Done","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4913b0116b5f2974a14361b49294d7f6adcd8a5c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"\tgetModuleConfigLong \u003d \"Display a specific module config or all defined modules configs if no name is provided\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"\tgetModuleConfigExample \u003d fmt.Sprintf(`"},{"line_number":32,"context_line":"# List all the modules configs airshipctl knows about"},{"line_number":33,"context_line":"airshipctl config get-module"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# Display a specific module config"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_efc83f21","line":32,"range":{"start_line":32,"start_character":2,"end_line":32,"end_character":53},"updated":"2020-02-19 20:16:58.000000000","message":"Maybe\n\nList all the configurations for the modules airshipctl knows about","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"c55ab9adcc76724139fee6d4579fe59cc4598278","unresolved":false,"context_lines":[{"line_number":29,"context_line":"\tgetModuleConfigLong \u003d \"Display a specific module config or all defined modules configs if no name is provided\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"\tgetModuleConfigExample \u003d fmt.Sprintf(`"},{"line_number":32,"context_line":"# List all the modules configs airshipctl knows about"},{"line_number":33,"context_line":"airshipctl config get-module"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"# Display a specific module config"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_81495f30","line":32,"range":{"start_line":32,"start_character":2,"end_line":32,"end_character":53},"in_reply_to":"3fa7e38b_efc83f21","updated":"2020-02-19 20:24:28.000000000","message":"Done","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"9e81529758531ce51dfa7d45ca5f544cd68b8217","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"func gmInitFlags(o *config.ModuleConfigOptions, getmoduleconfigcmd *cobra.Command) {"},{"line_number":66,"context_line":"\tgetmoduleconfigcmd.Flags().StringVar(\u0026o.ModuleType, config.FlagModuleType, \"\","},{"line_number":67,"context_line":"\t\tconfig.FlagModuleType+\" for the module bootstrap config in airshipctl config\")"},{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"func validateModule(o *config.ModuleConfigOptions) error {"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_0fa83b89","line":67,"range":{"start_line":67,"start_character":26,"end_line":67,"end_character":80},"updated":"2020-02-19 19:37:42.000000000","message":"This could be something else besides bootstrap, right? Sure, it\u0027s just bootstrapInfo right now, but we should probably leave this open for expansion, as more modules will be added in the future, i.e. \"Type of module config e.g. bootstrapInfo\")","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"651619174eb7e730e0fa2c1e9801a8393ebb1dc4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"func gmInitFlags(o *config.ModuleConfigOptions, getmoduleconfigcmd *cobra.Command) {"},{"line_number":66,"context_line":"\tgetmoduleconfigcmd.Flags().StringVar(\u0026o.ModuleType, config.FlagModuleType, \"\","},{"line_number":67,"context_line":"\t\tconfig.FlagModuleType+\" for the module bootstrap config in airshipctl config\")"},{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"func validateModule(o *config.ModuleConfigOptions) error {"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_8f166ba1","line":67,"range":{"start_line":67,"start_character":26,"end_line":67,"end_character":80},"in_reply_to":"3fa7e38b_0fa83b89","updated":"2020-02-19 20:02:32.000000000","message":"Done","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":62,"context_line":"\treturn getmoduleconfigcmd"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"func gmInitFlags(o *config.ModuleConfigOptions, getmoduleconfigcmd *cobra.Command) {"},{"line_number":66,"context_line":"\tgetmoduleconfigcmd.Flags().StringVar(\u0026o.ModuleType, config.FlagModuleType, \"\","},{"line_number":67,"context_line":"\t\tconfig.FlagModuleType+\" for the module config type in airshipctl config\")"},{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"func validateModule(o *config.ModuleConfigOptions) error {"},{"line_number":71,"context_line":"\t// Only an error if asking for a specific module config"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_36654bb6","line":68,"range":{"start_line":65,"start_character":0,"end_line":68,"end_character":1},"updated":"2020-02-26 17:47:25.000000000","message":"Please change this function\u0027s structure to match existing similar functions: https://github.com/airshipit/airshipctl/blob/master/cmd/config/set_cluster.go#L88","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":62,"context_line":"\treturn getmoduleconfigcmd"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"func gmInitFlags(o *config.ModuleConfigOptions, getmoduleconfigcmd *cobra.Command) {"},{"line_number":66,"context_line":"\tgetmoduleconfigcmd.Flags().StringVar(\u0026o.ModuleType, config.FlagModuleType, \"\","},{"line_number":67,"context_line":"\t\tconfig.FlagModuleType+\" for the module config type in airshipctl config\")"},{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"func validateModule(o *config.ModuleConfigOptions) error {"},{"line_number":71,"context_line":"\t// Only an error if asking for a specific module config"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_2c041c15","line":68,"range":{"start_line":65,"start_character":0,"end_line":68,"end_character":1},"in_reply_to":"1fa4df85_36654bb6","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"}],"cmd/config/testdata/TestGetModuleConfigCmdGoldenOutput/get-module-bootstrap.golden":[{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"9e81529758531ce51dfa7d45ca5f544cd68b8217","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Module Config: bootstrap"},{"line_number":2,"context_line":"builder:"},{"line_number":3,"context_line":"  networkConfigFileName: netconfig"},{"line_number":4,"context_line":"  outputMetadataFileName: output-metadata.yaml"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3fa7e38b_0fda7b49","line":1,"range":{"start_line":1,"start_character":6,"end_line":1,"end_character":7},"updated":"2020-02-19 19:37:42.000000000","message":"I don\u0027t think we should have spaces in our keys. Other keys are using camelCasing.","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"651619174eb7e730e0fa2c1e9801a8393ebb1dc4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Module Config: bootstrap"},{"line_number":2,"context_line":"builder:"},{"line_number":3,"context_line":"  networkConfigFileName: netconfig"},{"line_number":4,"context_line":"  outputMetadataFileName: output-metadata.yaml"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"3fa7e38b_cf4a23ad","line":1,"range":{"start_line":1,"start_character":6,"end_line":1,"end_character":7},"in_reply_to":"3fa7e38b_0fda7b49","updated":"2020-02-19 20:02:32.000000000","message":"Done","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"}],"pkg/config/cmds.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4913b0116b5f2974a14361b49294d7f6adcd8a5c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"\t}"},{"line_number":180,"context_line":"}"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"// runGetModuleConfig performs the execution of \u0027config get-module\u0027 sub command"},{"line_number":183,"context_line":"func RunGetModuleConfig(o *ModuleConfigOptions, out io.Writer, airconfig *Config) error {"},{"line_number":184,"context_line":"\treturn getModuleConfig(o, out, airconfig)"},{"line_number":185,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_af80079f","line":182,"range":{"start_line":182,"start_character":3,"end_line":182,"end_character":21},"updated":"2020-02-19 20:16:58.000000000","message":"RunGetModuleConfig","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"80949fe18b428d7d0c550b0a13fa167237220f81","unresolved":false,"context_lines":[{"line_number":179,"context_line":"\t}"},{"line_number":180,"context_line":"}"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"// runGetModuleConfig performs the execution of \u0027config get-module\u0027 sub command"},{"line_number":183,"context_line":"func RunGetModuleConfig(o *ModuleConfigOptions, out io.Writer, airconfig *Config) error {"},{"line_number":184,"context_line":"\treturn getModuleConfig(o, out, airconfig)"},{"line_number":185,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_a16b3b85","line":182,"range":{"start_line":182,"start_character":3,"end_line":182,"end_character":21},"in_reply_to":"3fa7e38b_af80079f","updated":"2020-02-19 20:30:12.000000000","message":"Done","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":114,"context_line":"func RunGetModuleConfig(o *ModuleConfigOptions, out io.Writer, airconfig *Config) error {"},{"line_number":115,"context_line":"\treturn getModuleConfig(o, out, airconfig)"},{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"func getModuleConfig(o *ModuleConfigOptions, out io.Writer, airconfig *Config) error {"},{"line_number":119,"context_line":"\tmoduleCfg, err :\u003d airconfig.GetModuleConfig(o.Name, o.ModuleType)"},{"line_number":120,"context_line":"\tif err !\u003d nil {"},{"line_number":121,"context_line":"\t\treturn err"},{"line_number":122,"context_line":"\t}"},{"line_number":123,"context_line":"\tfmt.Fprintf(out, \"%s\", moduleCfg.PrettyString())"},{"line_number":124,"context_line":"\treturn nil"},{"line_number":125,"context_line":"}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"func RunSetAuthInfo(o *AuthInfoOptions, airconfig *Config, writeToStorage bool) (bool, error) {"},{"line_number":128,"context_line":"\tmodified :\u003d false"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_b6f5bbcd","line":125,"range":{"start_line":117,"start_character":0,"end_line":125,"end_character":1},"updated":"2020-02-26 17:47:25.000000000","message":"Why is this function needed? Please move the body into RunGetModuleConfig","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":114,"context_line":"func RunGetModuleConfig(o *ModuleConfigOptions, out io.Writer, airconfig *Config) error {"},{"line_number":115,"context_line":"\treturn getModuleConfig(o, out, airconfig)"},{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"func getModuleConfig(o *ModuleConfigOptions, out io.Writer, airconfig *Config) error {"},{"line_number":119,"context_line":"\tmoduleCfg, err :\u003d airconfig.GetModuleConfig(o.Name, o.ModuleType)"},{"line_number":120,"context_line":"\tif err !\u003d nil {"},{"line_number":121,"context_line":"\t\treturn err"},{"line_number":122,"context_line":"\t}"},{"line_number":123,"context_line":"\tfmt.Fprintf(out, \"%s\", moduleCfg.PrettyString())"},{"line_number":124,"context_line":"\treturn nil"},{"line_number":125,"context_line":"}"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"func RunSetAuthInfo(o *AuthInfoOptions, airconfig *Config, writeToStorage bool) (bool, error) {"},{"line_number":128,"context_line":"\tmodified :\u003d false"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_0cffe001","line":125,"range":{"start_line":117,"start_character":0,"end_line":125,"end_character":1},"in_reply_to":"1fa4df85_b6f5bbcd","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"}],"pkg/config/config.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4913b0116b5f2974a14361b49294d7f6adcd8a5c","unresolved":false,"context_lines":[{"line_number":690,"context_line":"\t}"},{"line_number":691,"context_line":"}"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"// Get ModuleConfig"},{"line_number":694,"context_line":"func (c *Config) GetModuleConfig(mName, mType string) (*ModuleConfig, error) {"},{"line_number":695,"context_line":"\tmoduleConfig :\u003d ModuleConfig{}"},{"line_number":696,"context_line":"\tswitch mType {"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_cfa6a356","line":693,"range":{"start_line":693,"start_character":3,"end_line":693,"end_character":19},"updated":"2020-02-19 20:16:58.000000000","message":"Should be GetModuleConfig\n\nThis also needs further documentation to meet the standards set in https://github.com/airshipit/airshipctl/issues/40","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"80949fe18b428d7d0c550b0a13fa167237220f81","unresolved":false,"context_lines":[{"line_number":690,"context_line":"\t}"},{"line_number":691,"context_line":"}"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"// Get ModuleConfig"},{"line_number":694,"context_line":"func (c *Config) GetModuleConfig(mName, mType string) (*ModuleConfig, error) {"},{"line_number":695,"context_line":"\tmoduleConfig :\u003d ModuleConfig{}"},{"line_number":696,"context_line":"\tswitch mType {"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_61fa23bc","line":693,"range":{"start_line":693,"start_character":3,"end_line":693,"end_character":19},"in_reply_to":"3fa7e38b_cfa6a356","updated":"2020-02-19 20:30:12.000000000","message":"Done","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4913b0116b5f2974a14361b49294d7f6adcd8a5c","unresolved":false,"context_lines":[{"line_number":872,"context_line":"\treturn string(yamlData)"},{"line_number":873,"context_line":"}"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"func (m *ModuleConfig) PrettyString() string {"},{"line_number":876,"context_line":"\treturn fmt.Sprintf(\"moduleConfig: %s\\n%s\","},{"line_number":877,"context_line":"\t\tm.ModuleConfigType, m)"},{"line_number":878,"context_line":"}"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"// Manifest functions"},{"line_number":881,"context_line":"func (m *Manifest) Equal(n *Manifest) bool {"}],"source_content_type":"text/x-go","patch_set":9,"id":"3fa7e38b_a18fbb75","line":878,"range":{"start_line":875,"start_character":0,"end_line":878,"end_character":1},"updated":"2020-02-19 20:16:58.000000000","message":"Is this function necessary? Why doesn\u0027t the String function simply marshal the ModuleConfig?","commit_id":"feb9995bcd9ebb44e99593c353ef963ae4c719c5"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"9cf5b849c2646214df6d5d94e4a5bac5c938cb79","unresolved":false,"context_lines":[{"line_number":872,"context_line":"\treturn string(yamlData)"},{"line_number":873,"context_line":"}"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":"func (m *ModuleConfig) PrettyString() string {"},{"line_number":876,"context_line":"\treturn fmt.Sprintf(\"moduleConfig: %s\\n%s\","},{"line_number":877,"context_line":"\t\tm.ModuleConfigType, m)"},{"line_number":878,"context_line":"}"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"// Manifest functions"},{"line_number":881,"context_line":"func (m *Manifest) Equal(n *Manifest) bool {"}],"source_content_type":"text/x-go","patch_set":9,"id":"3fa7e38b_01c9efa9","line":878,"range":{"start_line":875,"start_character":0,"end_line":878,"end_character":1},"in_reply_to":"3fa7e38b_a18fbb75","updated":"2020-02-19 20:21:28.000000000","message":"String is printing the body of structure. PrettyString has additional message. It\u0027s flexible when we have different functions for different purposes.","commit_id":"feb9995bcd9ebb44e99593c353ef963ae4c719c5"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":697,"context_line":"\tcase ModuleBootstrap:"},{"line_number":698,"context_line":"\t\tbootstrap, exists :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":699,"context_line":"\t\tif !exists {"},{"line_number":700,"context_line":"\t\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with name \u0027%s\u0027 of type \u0027%s\u0027\", mName, mType)}"},{"line_number":701,"context_line":"\t\t}"},{"line_number":702,"context_line":"\t\tmoduleConfig.ModuleConfigType \u003d mType"},{"line_number":703,"context_line":"\t\tmoduleConfig.ModuleConfigBody \u003d bootstrap"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_36330bae","line":700,"range":{"start_line":700,"start_character":74,"end_line":700,"end_character":78},"updated":"2020-02-26 17:47:25.000000000","message":"%q","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":697,"context_line":"\tcase ModuleBootstrap:"},{"line_number":698,"context_line":"\t\tbootstrap, exists :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":699,"context_line":"\t\tif !exists {"},{"line_number":700,"context_line":"\t\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with name \u0027%s\u0027 of type \u0027%s\u0027\", mName, mType)}"},{"line_number":701,"context_line":"\t\t}"},{"line_number":702,"context_line":"\t\tmoduleConfig.ModuleConfigType \u003d mType"},{"line_number":703,"context_line":"\t\tmoduleConfig.ModuleConfigBody \u003d bootstrap"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_f62c9348","line":700,"range":{"start_line":700,"start_character":87,"end_line":700,"end_character":91},"updated":"2020-02-26 17:47:25.000000000","message":"ditto","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":697,"context_line":"\tcase ModuleBootstrap:"},{"line_number":698,"context_line":"\t\tbootstrap, exists :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":699,"context_line":"\t\tif !exists {"},{"line_number":700,"context_line":"\t\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with name \u0027%s\u0027 of type \u0027%s\u0027\", mName, mType)}"},{"line_number":701,"context_line":"\t\t}"},{"line_number":702,"context_line":"\t\tmoduleConfig.ModuleConfigType \u003d mType"},{"line_number":703,"context_line":"\t\tmoduleConfig.ModuleConfigBody \u003d bootstrap"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_2c52dc14","line":700,"range":{"start_line":700,"start_character":74,"end_line":700,"end_character":78},"in_reply_to":"1fa4df85_36330bae","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":697,"context_line":"\tcase ModuleBootstrap:"},{"line_number":698,"context_line":"\t\tbootstrap, exists :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":699,"context_line":"\t\tif !exists {"},{"line_number":700,"context_line":"\t\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with name \u0027%s\u0027 of type \u0027%s\u0027\", mName, mType)}"},{"line_number":701,"context_line":"\t\t}"},{"line_number":702,"context_line":"\t\tmoduleConfig.ModuleConfigType \u003d mType"},{"line_number":703,"context_line":"\t\tmoduleConfig.ModuleConfigBody \u003d bootstrap"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_cc56a807","line":700,"range":{"start_line":700,"start_character":87,"end_line":700,"end_character":91},"in_reply_to":"1fa4df85_f62c9348","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":703,"context_line":"\t\tmoduleConfig.ModuleConfigBody \u003d bootstrap"},{"line_number":704,"context_line":"\t\tbreak"},{"line_number":705,"context_line":"\tdefault:"},{"line_number":706,"context_line":"\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with type \u0027%s\u0027\", mType)}"},{"line_number":707,"context_line":"\t}"},{"line_number":708,"context_line":"\treturn \u0026moduleConfig, nil"},{"line_number":709,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_96219f50","line":706,"range":{"start_line":706,"start_character":74,"end_line":706,"end_character":77},"updated":"2020-02-26 17:47:25.000000000","message":"ditto","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":703,"context_line":"\t\tmoduleConfig.ModuleConfigBody \u003d bootstrap"},{"line_number":704,"context_line":"\t\tbreak"},{"line_number":705,"context_line":"\tdefault:"},{"line_number":706,"context_line":"\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with type \u0027%s\u0027\", mType)}"},{"line_number":707,"context_line":"\t}"},{"line_number":708,"context_line":"\treturn \u0026moduleConfig, nil"},{"line_number":709,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_ec5b642b","line":706,"range":{"start_line":706,"start_character":74,"end_line":706,"end_character":77},"in_reply_to":"1fa4df85_96219f50","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"\treturn fmt.Errorf(\"Cluster Type must be one of %v\", AllClusterTypes)"},{"line_number":1030,"context_line":"}"},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"func ValidModuleType(mtype string) error {"},{"line_number":1033,"context_line":"\tif mtype \u003d\u003d ModuleBootstrap {"},{"line_number":1034,"context_line":"\t\treturn nil"},{"line_number":1035,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_360b0b8f","line":1032,"updated":"2020-02-26 17:47:25.000000000","message":"This function should look like ValidClusterType above. We need to iterate over the ValidModuleTypes slice here.\n\nAnother spot for improvement would be to use the ErrInvalidConfig type in place of errors.New or fmt.Errorf","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"\treturn fmt.Errorf(\"Cluster Type must be one of %v\", AllClusterTypes)"},{"line_number":1030,"context_line":"}"},{"line_number":1031,"context_line":""},{"line_number":1032,"context_line":"func ValidModuleType(mtype string) error {"},{"line_number":1033,"context_line":"\tif mtype \u003d\u003d ModuleBootstrap {"},{"line_number":1034,"context_line":"\t\treturn nil"},{"line_number":1035,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_0c4da071","line":1032,"in_reply_to":"1fa4df85_360b0b8f","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"df28496961ff7c48af6f5f94c2b99e4ae19324ab","unresolved":false,"context_lines":[{"line_number":749,"context_line":"\t\t\t}"},{"line_number":750,"context_line":"\t\t\tsort.Strings(keys)"},{"line_number":751,"context_line":"\t\t\tfor _, mName :\u003d range keys {"},{"line_number":752,"context_line":"\t\t\t\tmodule, exists :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":753,"context_line":"\t\t\t\tif exists {"},{"line_number":754,"context_line":"\t\t\t\t\tmoduleCfgs \u003d append(moduleCfgs, module)"},{"line_number":755,"context_line":"\t\t\t\t}"}],"source_content_type":"text/x-go","patch_set":16,"id":"df33271e_70d430be","line":752,"range":{"start_line":752,"start_character":4,"end_line":752,"end_character":58},"updated":"2020-03-26 09:30:26.000000000","message":"no need to check that BootstrapInfo has key mName since variable \u0027keys\u0027 already has all valid keys","commit_id":"8734564ec29ed27706f1321722283d6686b2bd8f"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"df28496961ff7c48af6f5f94c2b99e4ae19324ab","unresolved":false,"context_lines":[{"line_number":753,"context_line":"\t\t\t\tif exists {"},{"line_number":754,"context_line":"\t\t\t\t\tmoduleCfgs \u003d append(moduleCfgs, module)"},{"line_number":755,"context_line":"\t\t\t\t}"},{"line_number":756,"context_line":"\t\t\t\tbreak"},{"line_number":757,"context_line":"\t\t\t}"},{"line_number":758,"context_line":"\t\tdefault:"},{"line_number":759,"context_line":"\t\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with type %q\", mType)}"}],"source_content_type":"text/x-go","patch_set":16,"id":"df33271e_d0da5ce7","line":756,"range":{"start_line":756,"start_character":0,"end_line":756,"end_character":9},"updated":"2020-03-26 09:30:26.000000000","message":"this will stop iteration over c.ModulesConfig.BootstrapInfo keys so moduleCfgs will contain only first module\n\nIdeally we should add tests with more than one bootstrap info","commit_id":"8734564ec29ed27706f1321722283d6686b2bd8f"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"8019411c20ee29723c4df3a7f43453f3a65e3089","unresolved":false,"context_lines":[{"line_number":740,"context_line":"\t\t\t}"},{"line_number":741,"context_line":"\t\t\tsort.Strings(keys)"},{"line_number":742,"context_line":"\t\t\tfor _, mName :\u003d range keys {"},{"line_number":743,"context_line":"\t\t\t\tmodule, _ :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":744,"context_line":"\t\t\t\tmoduleCfgs \u003d append(moduleCfgs, module)"},{"line_number":745,"context_line":"\t\t\t}"},{"line_number":746,"context_line":"\t\t\tbreak"},{"line_number":747,"context_line":"\t\tdefault:"}],"source_content_type":"text/x-go","patch_set":17,"id":"df33271e_3c52313c","line":744,"range":{"start_line":743,"start_character":0,"end_line":744,"end_character":43},"updated":"2020-03-31 13:05:54.000000000","message":"it can be even pimplier\n\nmoduleCfgs \u003d append(moduleCfgs, c.ModulesConfig.BootstrapInfo[mName])","commit_id":"8b7585633c4b06f732b716d8bf87a2fd9122bafa"},{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"8019411c20ee29723c4df3a7f43453f3a65e3089","unresolved":false,"context_lines":[{"line_number":725,"context_line":"}"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":"// GetModuleConfigs returns all of the module configs associated with the Config"},{"line_number":728,"context_line":"func (c *Config) GetModuleConfigs(requestedType string) ([]ModulesConfigIface, error) {"},{"line_number":729,"context_line":"\tvar modulesRange \u003d [1]string{requestedType}"},{"line_number":730,"context_line":"\tif requestedType \u003d\u003d \"\" {"},{"line_number":731,"context_line":"\t\tmodulesRange \u003d AllModuleTypes"},{"line_number":732,"context_line":"\t}"},{"line_number":733,"context_line":"\tmoduleCfgs :\u003d make([]ModulesConfigIface, 0, len(modulesRange))"},{"line_number":734,"context_line":"\tfor _, mType :\u003d range modulesRange {"},{"line_number":735,"context_line":"\t\tswitch mType {"},{"line_number":736,"context_line":"\t\tcase ModuleBootstrap:"},{"line_number":737,"context_line":"\t\t\tkeys :\u003d make([]string, 0, len(c.ModulesConfig.BootstrapInfo))"},{"line_number":738,"context_line":"\t\t\tfor name :\u003d range c.ModulesConfig.BootstrapInfo {"},{"line_number":739,"context_line":"\t\t\t\tkeys \u003d append(keys, name)"},{"line_number":740,"context_line":"\t\t\t}"},{"line_number":741,"context_line":"\t\t\tsort.Strings(keys)"},{"line_number":742,"context_line":"\t\t\tfor _, mName :\u003d range keys {"},{"line_number":743,"context_line":"\t\t\t\tmodule, _ :\u003d c.ModulesConfig.BootstrapInfo[mName]"},{"line_number":744,"context_line":"\t\t\t\tmoduleCfgs \u003d append(moduleCfgs, module)"},{"line_number":745,"context_line":"\t\t\t}"},{"line_number":746,"context_line":"\t\t\tbreak"},{"line_number":747,"context_line":"\t\tdefault:"},{"line_number":748,"context_line":"\t\t\treturn nil, ErrMissingConfig{What: fmt.Sprintf(\"ModuleConfig with type %q\", mType)}"},{"line_number":749,"context_line":"\t\t}"},{"line_number":750,"context_line":"\t}"},{"line_number":751,"context_line":"\treturn moduleCfgs, nil"},{"line_number":752,"context_line":"}"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"// CurrentContextBootstrapInfo returns bootstrap info for current context"},{"line_number":755,"context_line":"func (c *Config) CurrentContextBootstrapInfo() (*Bootstrap, error) {"}],"source_content_type":"text/x-go","patch_set":17,"id":"df33271e_8f53386b","line":752,"range":{"start_line":728,"start_character":0,"end_line":752,"end_character":1},"updated":"2020-03-31 13:05:54.000000000","message":"I\u0027m just thinking if we can make this more generic\nsomething like:\n\nfunc (c *Config) getConfig(f string) {\n\tfield :\u003d reflect.ValueOf(c.ModulesConfig).FieldByName(f)\n\tif field.IsZero() {\n\t\tfmt.Println(\"ERR not found\")\n\t\treturn\n\t}\n\tif field.Kind() !\u003d reflect.Map {\n\t\tfmt.Println(\"ERR not map\")\n\t\treturn\n\t}\n\tres :\u003d make([]interface{},0, field.Len())\n\tkeys :\u003d make([]string, 0, field.Len())\n\tfor _, key :\u003d range field.MapKeys() {\n\t\tkeys \u003d append(keys, key.String())\n\t}\n\tsort.Strings(keys)\n\tfor _, key :\u003d range keys {\n\t\tres \u003d append(res, field.MapIndex(reflect.ValueOf(key)).Interface())\n\t}\n\t\n\tfmt.Printf(\"%#v\\n\",res)\n\t\n}","commit_id":"8b7585633c4b06f732b716d8bf87a2fd9122bafa"}],"pkg/config/types.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"4913b0116b5f2974a14361b49294d7f6adcd8a5c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"// Should contains all fields from struct Modules without mapping"},{"line_number":183,"context_line":"type ModuleConfig struct {"},{"line_number":184,"context_line":"\tModuleConfigType string"},{"line_number":185,"context_line":"\tModuleConfigBody *Bootstrap"},{"line_number":186,"context_line":"}"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"// Bootstrap holds configurations for bootstrap steps"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_8f4e6b8e","line":185,"range":{"start_line":185,"start_character":0,"end_line":185,"end_character":28},"updated":"2020-02-19 20:16:58.000000000","message":"Related to Drew\u0027s comment - why is there a *Bootstrap in the ModuleConfig? It seems as though ModuleConfig aims to be a generic container for module configuration","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"80949fe18b428d7d0c550b0a13fa167237220f81","unresolved":false,"context_lines":[{"line_number":182,"context_line":"// Should contains all fields from struct Modules without mapping"},{"line_number":183,"context_line":"type ModuleConfig struct {"},{"line_number":184,"context_line":"\tModuleConfigType string"},{"line_number":185,"context_line":"\tModuleConfigBody *Bootstrap"},{"line_number":186,"context_line":"}"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"// Bootstrap holds configurations for bootstrap steps"}],"source_content_type":"text/x-go","patch_set":8,"id":"3fa7e38b_01da4f49","line":185,"range":{"start_line":185,"start_character":0,"end_line":185,"end_character":28},"in_reply_to":"3fa7e38b_8f4e6b8e","updated":"2020-02-19 20:30:12.000000000","message":"It should contains pointers to all known module types. For now it\u0027s just a bootstrap. And this is not a generic container, just a temp container for modules configurations.","commit_id":"8edc84416d608fcb6bc587aa4ac848a37007fefc"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":178,"context_line":"\tclusterType string"},{"line_number":179,"context_line":"}"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"// Holds the module config"},{"line_number":182,"context_line":"// Should contains all fields from struct Modules without mapping"},{"line_number":183,"context_line":"type ModuleConfig struct {"},{"line_number":184,"context_line":"\tModuleConfigType string"},{"line_number":185,"context_line":"\tModuleConfigBody *Bootstrap"},{"line_number":186,"context_line":"}"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"// Bootstrap holds configurations for bootstrap steps"},{"line_number":189,"context_line":"type Bootstrap struct {"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_76e3c334","line":186,"range":{"start_line":181,"start_character":0,"end_line":186,"end_character":1},"updated":"2020-02-26 17:47:25.000000000","message":"This struct feels like bloat. Why not use the members of Config.Modules directly?","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"}],"pkg/config/utils.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"func NewBootstrapContainer() *Container {"},{"line_number":101,"context_line":"\treturn \u0026Container{"},{"line_number":102,"context_line":"\t\tVolume:           \"\","},{"line_number":103,"context_line":"\t\tImage:            \"\","},{"line_number":104,"context_line":"\t\tContainerRuntime: \"\","},{"line_number":105,"context_line":"\t}"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":"func NewBootstrapBuilder() *Builder {"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_16d28f5d","line":104,"range":{"start_line":102,"start_character":0,"end_line":104,"end_character":23},"updated":"2020-02-26 17:47:25.000000000","message":"This are zero values. Please delete them","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"func NewBootstrapContainer() *Container {"},{"line_number":101,"context_line":"\treturn \u0026Container{"},{"line_number":102,"context_line":"\t\tVolume:           \"\","},{"line_number":103,"context_line":"\t\tImage:            \"\","},{"line_number":104,"context_line":"\t\tContainerRuntime: \"\","},{"line_number":105,"context_line":"\t}"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":"func NewBootstrapBuilder() *Builder {"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_0c05a0c2","line":104,"range":{"start_line":102,"start_character":0,"end_line":104,"end_character":23},"in_reply_to":"1fa4df85_16d28f5d","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":"func NewBootstrapBuilder() *Builder {"},{"line_number":108,"context_line":"\treturn \u0026Builder{"},{"line_number":109,"context_line":"\t\tUserDataFileName:       \"\","},{"line_number":110,"context_line":"\t\tNetworkConfigFileName:  \"\","},{"line_number":111,"context_line":"\t\tOutputMetadataFileName: \"\","},{"line_number":112,"context_line":"\t}"},{"line_number":113,"context_line":"}"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_d6cb97a2","line":111,"range":{"start_line":109,"start_character":0,"end_line":111,"end_character":29},"updated":"2020-02-26 17:47:25.000000000","message":"ditto","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":"func NewBootstrapBuilder() *Builder {"},{"line_number":108,"context_line":"\treturn \u0026Builder{"},{"line_number":109,"context_line":"\t\tUserDataFileName:       \"\","},{"line_number":110,"context_line":"\t\tNetworkConfigFileName:  \"\","},{"line_number":111,"context_line":"\t\tOutputMetadataFileName: \"\","},{"line_number":112,"context_line":"\t}"},{"line_number":113,"context_line":"}"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_6c6a1481","line":111,"range":{"start_line":109,"start_character":0,"end_line":111,"end_character":29},"in_reply_to":"1fa4df85_d6cb97a2","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"43601c9d2515bfeca836bc196c6e15d12bbb2989","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"func NewBootstrapRemoteDirect() *RemoteDirect {"},{"line_number":116,"context_line":"\treturn \u0026RemoteDirect{"},{"line_number":117,"context_line":"\t\tRemoteType: \"\","},{"line_number":118,"context_line":"\t\tIsoURL:     \"\","},{"line_number":119,"context_line":"\t}"},{"line_number":120,"context_line":"}"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_96c51f91","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":17},"updated":"2020-02-26 17:47:25.000000000","message":"ditto","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"5087595635cff60c2a63548c4e0e63e055e1f462","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"func NewBootstrapRemoteDirect() *RemoteDirect {"},{"line_number":116,"context_line":"\treturn \u0026RemoteDirect{"},{"line_number":117,"context_line":"\t\tRemoteType: \"\","},{"line_number":118,"context_line":"\t\tIsoURL:     \"\","},{"line_number":119,"context_line":"\t}"},{"line_number":120,"context_line":"}"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_4c6dd896","line":118,"range":{"start_line":117,"start_character":0,"end_line":118,"end_character":17},"in_reply_to":"1fa4df85_96c51f91","updated":"2020-02-26 23:27:18.000000000","message":"Done","commit_id":"51b532136a6dac80d16ea38eddb29c2585782929"}]}
