)]}'
{"pkg/k8s/kubeconfig/errors.go":[{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"144ff529bee591bad3bbf319de1c1f0ff7a43892","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\treturn fmt.Sprintf(\"Can\u0027t access secret %s in kubernetes: %s\", e.SecretName, e.InternalErr)"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"// ErrEmptySecretData error returned if secret data is nil"},{"line_number":40,"context_line":"type ErrEmptySecretData struct {"},{"line_number":41,"context_line":"\tSecretName string"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"func (e ErrEmptySecretData) Error() string {"},{"line_number":45,"context_line":"\treturn fmt.Sprintf(\"Can\u0027t retrieve data from secret %s\", e.SecretName)"},{"line_number":46,"context_line":"}"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"// ErrNoSecretDataVal error returned if there is no secret data value"},{"line_number":49,"context_line":"type ErrNoSecretDataVal struct {"},{"line_number":50,"context_line":"\tSecretName string"},{"line_number":51,"context_line":"}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"func (e ErrNoSecretDataVal) Error() string {"},{"line_number":54,"context_line":"\treturn fmt.Sprintf(\"Can\u0027t retrieve data value from secret %s\", e.SecretName)"},{"line_number":55,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":2,"id":"9f560f44_a8eb0776","line":55,"range":{"start_line":39,"start_character":0,"end_line":55,"end_character":1},"updated":"2020-09-01 21:51:04.000000000","message":"I think this can be one error, ErrMalformedSecret?","commit_id":"61fe2643ae5d14e53ae6bb79831df221a0f19320"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"dac0c16fa3bd8cde09c2e4258558c6c50d9df2de","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"func (e ErrMalformedSecret) Error() string {"},{"line_number":45,"context_line":"\treturn fmt.Sprintf("},{"line_number":46,"context_line":"\t\t\"Can\u0027t retrieve data from secret %s in cluster %s(namespace: %s)\","},{"line_number":47,"context_line":"\t\te.SecretName,"},{"line_number":48,"context_line":"\t\te.ClusterName,"},{"line_number":49,"context_line":"\t\te.Namespace,"}],"source_content_type":"text/x-go","patch_set":6,"id":"9f560f44_8597fc3a","line":46,"range":{"start_line":46,"start_character":3,"end_line":46,"end_character":4},"updated":"2020-09-02 18:43:24.000000000","message":"this should be lowercase","commit_id":"c1584e3b8ab5cdd2a83292deb3216a8503bb4866"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"47f8689257798f4adbcf2e2ae31fd555ba93e6df","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"func (e ErrMalformedSecret) Error() string {"},{"line_number":45,"context_line":"\treturn fmt.Sprintf("},{"line_number":46,"context_line":"\t\t\"Can\u0027t retrieve data from secret %s in cluster %s(namespace: %s)\","},{"line_number":47,"context_line":"\t\te.SecretName,"},{"line_number":48,"context_line":"\t\te.ClusterName,"},{"line_number":49,"context_line":"\t\te.Namespace,"}],"source_content_type":"text/x-go","patch_set":6,"id":"9f560f44_25327010","line":46,"range":{"start_line":46,"start_character":3,"end_line":46,"end_character":4},"in_reply_to":"9f560f44_8597fc3a","updated":"2020-09-02 18:54:24.000000000","message":"Done","commit_id":"c1584e3b8ab5cdd2a83292deb3216a8503bb4866"}],"pkg/k8s/kubeconfig/kubeconfig_test.go":[{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":202,"context_line":"\t\t\t\tClient:      fake.NewClient(tt.acc),"},{"line_number":203,"context_line":"\t\t\t}"},{"line_number":204,"context_line":"\t\t\tkubeconf, err :\u003d kubeconfig.FromSecret(opts)()"},{"line_number":205,"context_line":"\t\t\tif tt.shouldFail {"},{"line_number":206,"context_line":"\t\t\t\trequire.Error(t, err)"},{"line_number":207,"context_line":"\t\t\t\tassert.Nil(t, kubeconf)"},{"line_number":208,"context_line":"\t\t\t} else {"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_c8b3d6e8","line":205,"range":{"start_line":205,"start_character":6,"end_line":205,"end_character":19},"updated":"2020-09-02 07:24:30.000000000","message":"I think it\u0027s better to compare with actual error type rather then just check that any error occurred","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":202,"context_line":"\t\t\t\tClient:      fake.NewClient(tt.acc),"},{"line_number":203,"context_line":"\t\t\t}"},{"line_number":204,"context_line":"\t\t\tkubeconf, err :\u003d kubeconfig.FromSecret(opts)()"},{"line_number":205,"context_line":"\t\t\tif tt.shouldFail {"},{"line_number":206,"context_line":"\t\t\t\trequire.Error(t, err)"},{"line_number":207,"context_line":"\t\t\t\tassert.Nil(t, kubeconf)"},{"line_number":208,"context_line":"\t\t\t} else {"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_172de2a7","line":205,"range":{"start_line":205,"start_character":6,"end_line":205,"end_character":19},"in_reply_to":"9f560f44_c8b3d6e8","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":254,"context_line":"\t\t})"},{"line_number":255,"context_line":"\t}"},{"line_number":256,"context_line":"}"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"func TestNewKubeConfig(t *testing.T) {"},{"line_number":259,"context_line":"\ttests :\u003d []struct {"},{"line_number":260,"context_line":"\t\tshouldPanic           bool"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_a85e62e6","line":257,"updated":"2020-09-02 07:24:30.000000000","message":"unnecessary new line","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":254,"context_line":"\t\t})"},{"line_number":255,"context_line":"\t}"},{"line_number":256,"context_line":"}"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"func TestNewKubeConfig(t *testing.T) {"},{"line_number":259,"context_line":"\ttests :\u003d []struct {"},{"line_number":260,"context_line":"\t\tshouldPanic           bool"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_57e75a47","line":257,"in_reply_to":"9f560f44_a85e62e6","updated":"2020-09-02 17:33:06.000000000","message":"It\u0027s better to have a blank line between function definitions.","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"}],"pkg/k8s/kubeconfig/secret.go":[{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"144ff529bee591bad3bbf319de1c1f0ff7a43892","unresolved":false,"context_lines":[{"line_number":23,"context_line":")"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"// Opts holds all configurable options for kubeconfig extraction"},{"line_number":26,"context_line":"type Opts struct {"},{"line_number":27,"context_line":"\tClusterName string"},{"line_number":28,"context_line":"\tNamespace   string"},{"line_number":29,"context_line":"\tClient      client.Interface"}],"source_content_type":"text/x-go","patch_set":2,"id":"9f560f44_88c5630d","line":26,"range":{"start_line":26,"start_character":5,"end_line":26,"end_character":9},"updated":"2020-09-01 21:51:04.000000000","message":"since this is kubeconfig package, i thought it should be named differently.\nWe are getting this from existing cluster, so it feels like FromClusterOptions, GetFromClusterOptions ?\n\nI personally don\u0027t think it matters a lot how we name it, but not Opts, since these are not kubeconfig.Opts.","commit_id":"61fe2643ae5d14e53ae6bb79831df221a0f19320"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// GetKubeconfigFromSecret extracts kubeconfig from secret data structure"},{"line_number":33,"context_line":"func GetKubeconfigFromSecret(o *FromClusterOptions) ([]byte, error) {"},{"line_number":34,"context_line":"\tsecretName :\u003d fmt.Sprintf(\"%s-kubeconfig\", o.ClusterName)"},{"line_number":35,"context_line":"\tkubeCore :\u003d o.Client.ClientSet().CoreV1()"},{"line_number":36,"context_line":"\tsecret, err :\u003d kubeCore.Secrets(o.Namespace).Get(secretName, metav1.GetOptions{})"},{"line_number":37,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_c8291638","line":34,"range":{"start_line":34,"start_character":46,"end_line":34,"end_character":57},"updated":"2020-09-02 07:24:30.000000000","message":"there is should be validation step that cluster name is not empty","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"// GetKubeconfigFromSecret extracts kubeconfig from secret data structure"},{"line_number":33,"context_line":"func GetKubeconfigFromSecret(o *FromClusterOptions) ([]byte, error) {"},{"line_number":34,"context_line":"\tsecretName :\u003d fmt.Sprintf(\"%s-kubeconfig\", o.ClusterName)"},{"line_number":35,"context_line":"\tkubeCore :\u003d o.Client.ClientSet().CoreV1()"},{"line_number":36,"context_line":"\tsecret, err :\u003d kubeCore.Secrets(o.Namespace).Get(secretName, metav1.GetOptions{})"},{"line_number":37,"context_line":"\tif err !\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_3715869c","line":34,"range":{"start_line":34,"start_character":46,"end_line":34,"end_character":57},"in_reply_to":"9f560f44_c8291638","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":33,"context_line":"func GetKubeconfigFromSecret(o *FromClusterOptions) ([]byte, error) {"},{"line_number":34,"context_line":"\tsecretName :\u003d fmt.Sprintf(\"%s-kubeconfig\", o.ClusterName)"},{"line_number":35,"context_line":"\tkubeCore :\u003d o.Client.ClientSet().CoreV1()"},{"line_number":36,"context_line":"\tsecret, err :\u003d kubeCore.Secrets(o.Namespace).Get(secretName, metav1.GetOptions{})"},{"line_number":37,"context_line":"\tif err !\u003d nil {"},{"line_number":38,"context_line":"\t\treturn nil, ErrNoSecret{InternalErr: err, SecretName: secretName}"},{"line_number":39,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_88d43e21","line":36,"range":{"start_line":36,"start_character":33,"end_line":36,"end_character":44},"updated":"2020-09-02 07:24:30.000000000","message":"I\u0027d propose to assign \"default\" value in case if namespace isn\u0027t explicitly specified","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":33,"context_line":"func GetKubeconfigFromSecret(o *FromClusterOptions) ([]byte, error) {"},{"line_number":34,"context_line":"\tsecretName :\u003d fmt.Sprintf(\"%s-kubeconfig\", o.ClusterName)"},{"line_number":35,"context_line":"\tkubeCore :\u003d o.Client.ClientSet().CoreV1()"},{"line_number":36,"context_line":"\tsecret, err :\u003d kubeCore.Secrets(o.Namespace).Get(secretName, metav1.GetOptions{})"},{"line_number":37,"context_line":"\tif err !\u003d nil {"},{"line_number":38,"context_line":"\t\treturn nil, ErrNoSecret{InternalErr: err, SecretName: secretName}"},{"line_number":39,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_970c5295","line":36,"range":{"start_line":36,"start_character":33,"end_line":36,"end_character":44},"in_reply_to":"9f560f44_88d43e21","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\tkubeCore :\u003d o.Client.ClientSet().CoreV1()"},{"line_number":36,"context_line":"\tsecret, err :\u003d kubeCore.Secrets(o.Namespace).Get(secretName, metav1.GetOptions{})"},{"line_number":37,"context_line":"\tif err !\u003d nil {"},{"line_number":38,"context_line":"\t\treturn nil, ErrNoSecret{InternalErr: err, SecretName: secretName}"},{"line_number":39,"context_line":"\t}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\tif secret.Data \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_08c94e78","line":38,"range":{"start_line":38,"start_character":14,"end_line":38,"end_character":67},"updated":"2020-09-02 07:24:30.000000000","message":"why not just return err?","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\tkubeCore :\u003d o.Client.ClientSet().CoreV1()"},{"line_number":36,"context_line":"\tsecret, err :\u003d kubeCore.Secrets(o.Namespace).Get(secretName, metav1.GetOptions{})"},{"line_number":37,"context_line":"\tif err !\u003d nil {"},{"line_number":38,"context_line":"\t\treturn nil, ErrNoSecret{InternalErr: err, SecretName: secretName}"},{"line_number":39,"context_line":"\t}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\tif secret.Data \u003d\u003d nil {"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_172042f7","line":38,"range":{"start_line":38,"start_character":14,"end_line":38,"end_character":67},"in_reply_to":"9f560f44_08c94e78","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\t}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\tif secret.Data \u003d\u003d nil {"},{"line_number":42,"context_line":"\t\treturn nil, ErrMalformedSecret{SecretName: secretName}"},{"line_number":43,"context_line":"\t}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_888b9e1c","line":42,"range":{"start_line":42,"start_character":33,"end_line":42,"end_character":55},"updated":"2020-09-02 07:24:30.000000000","message":"I think secret name doesn\u0027t make more sense; for troubleshooting purposes it would be nice to see for which cluster and in which namespace the error occurred","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\t}"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"\tif secret.Data \u003d\u003d nil {"},{"line_number":42,"context_line":"\t\treturn nil, ErrMalformedSecret{SecretName: secretName}"},{"line_number":43,"context_line":"\t}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_f7278ec6","line":42,"range":{"start_line":42,"start_character":33,"end_line":42,"end_character":55},"in_reply_to":"9f560f44_888b9e1c","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"},{"line_number":46,"context_line":"\tif !exist {"},{"line_number":47,"context_line":"\t\treturn nil, ErrMalformedSecret{SecretName: secretName}"},{"line_number":48,"context_line":"\t}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_e897ba39","line":46,"range":{"start_line":46,"start_character":1,"end_line":46,"end_character":10},"updated":"2020-09-02 07:24:30.000000000","message":"no validation that secret could exist, but might be empty","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":43,"context_line":"\t}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"},{"line_number":46,"context_line":"\tif !exist {"},{"line_number":47,"context_line":"\t\treturn nil, ErrMalformedSecret{SecretName: secretName}"},{"line_number":48,"context_line":"\t}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_ba65fb4b","line":46,"range":{"start_line":46,"start_character":1,"end_line":46,"end_character":10},"in_reply_to":"9f560f44_e897ba39","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":16768,"name":"Ruslan Aliev","email":"raliev@mirantis.com","username":"raliev"},"change_message_id":"13d399d7e8ab8ac80964420bef0f96f201352cf8","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"},{"line_number":46,"context_line":"\tif !exist {"},{"line_number":47,"context_line":"\t\treturn nil, ErrMalformedSecret{SecretName: secretName}"},{"line_number":48,"context_line":"\t}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\treturn val, nil"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_48718644","line":47,"range":{"start_line":47,"start_character":33,"end_line":47,"end_character":55},"updated":"2020-09-02 07:24:30.000000000","message":"ditto","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"edab11dfbf89e5cc7e01be8828bc87d6d893f4ac","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"},{"line_number":46,"context_line":"\tif !exist {"},{"line_number":47,"context_line":"\t\treturn nil, ErrMalformedSecret{SecretName: secretName}"},{"line_number":48,"context_line":"\t}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\treturn val, nil"}],"source_content_type":"text/x-go","patch_set":3,"id":"9f560f44_5718fa82","line":47,"range":{"start_line":47,"start_character":33,"end_line":47,"end_character":55},"in_reply_to":"9f560f44_48718644","updated":"2020-09-02 17:33:06.000000000","message":"Done","commit_id":"c3ea2c352deae4d63dbb4da558ab521f2b6fba0c"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"dac0c16fa3bd8cde09c2e4258558c6c50d9df2de","unresolved":false,"context_lines":[{"line_number":60,"context_line":"\t}"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"},{"line_number":63,"context_line":"\tif !exist {"},{"line_number":64,"context_line":"\t\treturn nil, ErrMalformedSecret{"},{"line_number":65,"context_line":"\t\t\tClusterName: o.ClusterName,"},{"line_number":66,"context_line":"\t\t\tNamespace:   o.Namespace,"},{"line_number":67,"context_line":"\t\t\tSecretName:  secretName,"},{"line_number":68,"context_line":"\t\t}"},{"line_number":69,"context_line":"\t}"},{"line_number":70,"context_line":"\tif len(val) \u003d\u003d 0 {"},{"line_number":71,"context_line":"\t\treturn nil, ErrMalformedSecret{"},{"line_number":72,"context_line":"\t\t\tClusterName: o.ClusterName,"},{"line_number":73,"context_line":"\t\t\tNamespace:   o.Namespace,"},{"line_number":74,"context_line":"\t\t\tSecretName:  secretName,"},{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":"\t}"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"\treturn val, nil"},{"line_number":79,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":6,"id":"9f560f44_85337c62","line":76,"range":{"start_line":63,"start_character":0,"end_line":76,"end_character":2},"updated":"2020-09-02 18:43:24.000000000","message":"Combine the 2 conditions:\n\n  if !exist | len(val) \u003d\u003d 0 {\n    // return error\n  }","commit_id":"c1584e3b8ab5cdd2a83292deb3216a8503bb4866"},{"author":{"_account_id":23781,"name":"Stanislav Egorov","email":"realsystem@gmail.com","username":"StasEgorov"},"change_message_id":"47f8689257798f4adbcf2e2ae31fd555ba93e6df","unresolved":false,"context_lines":[{"line_number":60,"context_line":"\t}"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"\tval, exist :\u003d secret.Data[\"value\"]"},{"line_number":63,"context_line":"\tif !exist {"},{"line_number":64,"context_line":"\t\treturn nil, ErrMalformedSecret{"},{"line_number":65,"context_line":"\t\t\tClusterName: o.ClusterName,"},{"line_number":66,"context_line":"\t\t\tNamespace:   o.Namespace,"},{"line_number":67,"context_line":"\t\t\tSecretName:  secretName,"},{"line_number":68,"context_line":"\t\t}"},{"line_number":69,"context_line":"\t}"},{"line_number":70,"context_line":"\tif len(val) \u003d\u003d 0 {"},{"line_number":71,"context_line":"\t\treturn nil, ErrMalformedSecret{"},{"line_number":72,"context_line":"\t\t\tClusterName: o.ClusterName,"},{"line_number":73,"context_line":"\t\t\tNamespace:   o.Namespace,"},{"line_number":74,"context_line":"\t\t\tSecretName:  secretName,"},{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":"\t}"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"\treturn val, nil"},{"line_number":79,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":6,"id":"9f560f44_452fa4a6","line":76,"range":{"start_line":63,"start_character":0,"end_line":76,"end_character":2},"in_reply_to":"9f560f44_85337c62","updated":"2020-09-02 18:54:24.000000000","message":"Done","commit_id":"c1584e3b8ab5cdd2a83292deb3216a8503bb4866"}]}
