)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[#11] Implement selector kustomize primitive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce Filter object that would serve as adaptor to kustomize,"},{"line_number":10,"context_line":"this provides a layer between kustomize in a way that there is no"},{"line_number":11,"context_line":"more need to import types package from kustomize by other modules."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"1fa4df85_70ba990a","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":16},"updated":"2020-03-03 16:05:09.000000000","message":"Selector","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"ae0c02446c1a68149d3879b3b4484da7d78b3336","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[#11] Implement selector kustomize primitive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce Filter object that would serve as adaptor to kustomize,"},{"line_number":10,"context_line":"this provides a layer between kustomize in a way that there is no"},{"line_number":11,"context_line":"more need to import types package from kustomize by other modules."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1fa4df85_6bbaac0a","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":16},"updated":"2020-03-03 16:56:53.000000000","message":"Selector","commit_id":"a3ed6dc2134355f0c460756a7ae52bcff746d9a1"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"77b9463899745e933f136df5edc4ffc6093c1a06","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[#11] Implement selector kustomize primitive"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce Filter object that would serve as adaptor to kustomize,"},{"line_number":10,"context_line":"this provides a layer between kustomize in a way that there is no"},{"line_number":11,"context_line":"more need to import types package from kustomize by other modules."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1fa4df85_6bee2cb5","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":16},"in_reply_to":"1fa4df85_6bbaac0a","updated":"2020-03-03 17:08:43.000000000","message":"Done","commit_id":"a3ed6dc2134355f0c460756a7ae52bcff746d9a1"}],"pkg/bootstrap/cloudinit/cloud-init.go":[{"author":{"_account_id":7185,"name":"Dmitry Ukov","email":"dukov@mirantis.com","username":"dukov"},"change_message_id":"9a63567bc3bc75966b85a49c8075cd85a9a7e0b1","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"// GetCloudData reads YAML document input and generates cloud-init data for"},{"line_number":46,"context_line":"// node (i.e. Cluster API Machine) with bootstrap label."},{"line_number":47,"context_line":"func GetCloudData(docBundle document.Bundle, bsLabel string) ([]byte, []byte, error) {"},{"line_number":48,"context_line":"\tvar userData []byte"},{"line_number":49,"context_line":"\tvar netConf []byte"},{"line_number":50,"context_line":"\tdocs, err :\u003d docBundle.GetByLabel(bsLabel)"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_87f8467b","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":52},"updated":"2020-03-03 08:47:32.000000000","message":"Selector seems more generic. What\u0027s the point of changing it to a specific term?","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"// GetCloudData reads YAML document input and generates cloud-init data for"},{"line_number":46,"context_line":"// node (i.e. Cluster API Machine) with bootstrap label."},{"line_number":47,"context_line":"func GetCloudData(docBundle document.Bundle, bsLabel string) ([]byte, []byte, error) {"},{"line_number":48,"context_line":"\tvar userData []byte"},{"line_number":49,"context_line":"\tvar netConf []byte"},{"line_number":50,"context_line":"\tdocs, err :\u003d docBundle.GetByLabel(bsLabel)"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_10eb2513","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":52},"in_reply_to":"1fa4df85_87f8467b","updated":"2020-03-03 16:24:40.000000000","message":"Done","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"// GetCloudData reads YAML document input and generates cloud-init data for"},{"line_number":46,"context_line":"// node (i.e. Cluster API Machine) with bootstrap label."},{"line_number":47,"context_line":"func GetCloudData(docBundle document.Bundle, bsLabel string) ([]byte, []byte, error) {"},{"line_number":48,"context_line":"\tvar userData []byte"},{"line_number":49,"context_line":"\tvar netConf []byte"},{"line_number":50,"context_line":"\tdocs, err :\u003d docBundle.GetByLabel(bsLabel)"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_904cf542","line":47,"range":{"start_line":47,"start_character":45,"end_line":47,"end_character":52},"in_reply_to":"1fa4df85_87f8467b","updated":"2020-03-03 16:05:09.000000000","message":"I think the specific term makes more sense here. After all, this is /specifically/ a label","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"}],"pkg/cluster/initinfra/infra.go":[{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"\t}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"\tls :\u003d document.EphemeralClusterSelector"},{"line_number":74,"context_line":"\tfilter :\u003d document.NewSelector().ByLabel(ls)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"\t// Get documents that are annotated to belong to initinfra"},{"line_number":77,"context_line":"\tdocs, err :\u003d b.Select(filter)"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_2bc90f25","line":74,"range":{"start_line":74,"start_character":1,"end_line":74,"end_character":7},"updated":"2020-03-03 22:04:34.000000000","message":"selector","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"8b18b2e892a996744ff2990e0a71fe51689e1b29","unresolved":false,"context_lines":[{"line_number":71,"context_line":"\t}"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"\tls :\u003d document.EphemeralClusterSelector"},{"line_number":74,"context_line":"\tfilter :\u003d document.NewSelector().ByLabel(ls)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"\t// Get documents that are annotated to belong to initinfra"},{"line_number":77,"context_line":"\tdocs, err :\u003d b.Select(filter)"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_ae40ada6","line":74,"range":{"start_line":74,"start_character":1,"end_line":74,"end_character":7},"in_reply_to":"1fa4df85_2bc90f25","updated":"2020-03-03 22:35:07.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"}],"pkg/document/bundle.go":[{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"c6c97917f9d7722fdfbffc1d6afa5d80661178cc","unresolved":false,"context_lines":[{"line_number":209,"context_line":"}"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"// GetByAnnotation is a convenience method to get documents for a particular annotation"},{"line_number":212,"context_line":"func (b *BundleFactory) GetByAnnotation(as AnnotationSelector) ([]Document, error) {"},{"line_number":213,"context_line":"\t// Construct kustomize annotation selector"},{"line_number":214,"context_line":"\tfilter :\u003d NewFilter().ByAnnotation(as)"},{"line_number":215,"context_line":"\t// pass it to the selector"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_8913d466","line":212,"updated":"2020-02-25 22:09:51.000000000","message":"Are there any concerns this is going to be a little heavy for end-users? Previously, a user only needed to specify a string.  Now they need to construct an AnnotationSelector.  This may be a bit heavy-handed for most use cases, I don\u0027t know. To be sure, I thought the specific goal of this change I thought was to avoid needing to import the kustomize pkg rather then re-engineer the interfaces.","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"89fd818e8118c5c956260870e4a35850501f9683","unresolved":false,"context_lines":[{"line_number":209,"context_line":"}"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"// GetByAnnotation is a convenience method to get documents for a particular annotation"},{"line_number":212,"context_line":"func (b *BundleFactory) GetByAnnotation(as AnnotationSelector) ([]Document, error) {"},{"line_number":213,"context_line":"\t// Construct kustomize annotation selector"},{"line_number":214,"context_line":"\tfilter :\u003d NewFilter().ByAnnotation(as)"},{"line_number":215,"context_line":"\t// pass it to the selector"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_e405cf7b","line":212,"in_reply_to":"1fa4df85_8913d466","updated":"2020-02-25 22:58:47.000000000","message":"my intention was, that we may need to combine two label selector into single one, so i thought we could provide a function that can join multiple label selectors. I know it is an easy operation, such as strings.join(\",\", []string), but i thought what, if the labelselector changes in kustomize, and they decide to provide some defined operations on selectors, or change the separator, in this case,  CombineSelectors([]LabelSelector) function would come in handy.","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"daf57bd0acdbf167915cf2daac22cf5417b22f4b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\tSelect(selector Filter) ([]Document, error)"},{"line_number":53,"context_line":"\tGetByGvk(string, string, string) ([]Document, error)"},{"line_number":54,"context_line":"\tGetByName(string) (Document, error)"},{"line_number":55,"context_line":"\tGetByAnnotation(as string) ([]Document, error)"},{"line_number":56,"context_line":"\tGetByLabel(as string) ([]Document, error)"},{"line_number":57,"context_line":"\tGetAllDocuments() ([]Document, error)"},{"line_number":58,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_74905b4f","line":55,"range":{"start_line":55,"start_character":17,"end_line":55,"end_character":19},"updated":"2020-03-02 21:34:55.000000000","message":"personal preference: annotationSelector","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"4f5f263fdded3c45961b9b1a092e101a728de7ec","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\tSelect(selector Filter) ([]Document, error)"},{"line_number":53,"context_line":"\tGetByGvk(string, string, string) ([]Document, error)"},{"line_number":54,"context_line":"\tGetByName(string) (Document, error)"},{"line_number":55,"context_line":"\tGetByAnnotation(as string) ([]Document, error)"},{"line_number":56,"context_line":"\tGetByLabel(as string) ([]Document, error)"},{"line_number":57,"context_line":"\tGetAllDocuments() ([]Document, error)"},{"line_number":58,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_6ff406d0","line":55,"range":{"start_line":55,"start_character":17,"end_line":55,"end_character":19},"in_reply_to":"1fa4df85_74905b4f","updated":"2020-03-02 22:43:05.000000000","message":"Done","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"daf57bd0acdbf167915cf2daac22cf5417b22f4b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"\tGetByGvk(string, string, string) ([]Document, error)"},{"line_number":54,"context_line":"\tGetByName(string) (Document, error)"},{"line_number":55,"context_line":"\tGetByAnnotation(as string) ([]Document, error)"},{"line_number":56,"context_line":"\tGetByLabel(as string) ([]Document, error)"},{"line_number":57,"context_line":"\tGetAllDocuments() ([]Document, error)"},{"line_number":58,"context_line":"}"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_d48a6f19","line":56,"range":{"start_line":56,"start_character":12,"end_line":56,"end_character":14},"updated":"2020-03-02 21:34:55.000000000","message":"i think you meant `ls`, but personal preference: labelSelector","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"4f5f263fdded3c45961b9b1a092e101a728de7ec","unresolved":false,"context_lines":[{"line_number":53,"context_line":"\tGetByGvk(string, string, string) ([]Document, error)"},{"line_number":54,"context_line":"\tGetByName(string) (Document, error)"},{"line_number":55,"context_line":"\tGetByAnnotation(as string) ([]Document, error)"},{"line_number":56,"context_line":"\tGetByLabel(as string) ([]Document, error)"},{"line_number":57,"context_line":"\tGetAllDocuments() ([]Document, error)"},{"line_number":58,"context_line":"}"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_4ff90ac6","line":56,"range":{"start_line":56,"start_character":12,"end_line":56,"end_character":14},"in_reply_to":"1fa4df85_d48a6f19","updated":"2020-03-02 22:43:05.000000000","message":"Done","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"daf57bd0acdbf167915cf2daac22cf5417b22f4b","unresolved":false,"context_lines":[{"line_number":186,"context_line":"\t}"},{"line_number":187,"context_line":"}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"// Select offers a direct interface to pass a Kustomize Selector to the bundle"},{"line_number":190,"context_line":"// returning Documents that match the criteria"},{"line_number":191,"context_line":"func (b *BundleFactory) Select(selector Filter) ([]Document, error) {"},{"line_number":192,"context_line":"\t// use the kustomize select method"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_7437fbe4","line":189,"range":{"start_line":189,"start_character":3,"end_line":189,"end_character":64},"updated":"2020-03-02 21:34:55.000000000","message":"no longer true","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"4f5f263fdded3c45961b9b1a092e101a728de7ec","unresolved":false,"context_lines":[{"line_number":186,"context_line":"\t}"},{"line_number":187,"context_line":"}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"// Select offers a direct interface to pass a Kustomize Selector to the bundle"},{"line_number":190,"context_line":"// returning Documents that match the criteria"},{"line_number":191,"context_line":"func (b *BundleFactory) Select(selector Filter) ([]Document, error) {"},{"line_number":192,"context_line":"\t// use the kustomize select method"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_0f0312ba","line":189,"range":{"start_line":189,"start_character":3,"end_line":189,"end_character":64},"in_reply_to":"1fa4df85_7437fbe4","updated":"2020-03-02 22:43:05.000000000","message":"Done","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":186,"context_line":"\t}"},{"line_number":187,"context_line":"}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"// Select offers a interface to pass a Selector, built on top of kustomize Selector"},{"line_number":190,"context_line":"// to the bundle returning Documents that match the criteria"},{"line_number":191,"context_line":"func (b *BundleFactory) Select(selector Selector) ([]Document, error) {"},{"line_number":192,"context_line":"\t// use the kustomize select method"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_9075d566","line":189,"range":{"start_line":189,"start_character":17,"end_line":189,"end_character":18},"updated":"2020-03-03 16:05:09.000000000","message":"an","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":211,"context_line":"// GetByAnnotation is a convenience method to get documents for a particular annotation"},{"line_number":212,"context_line":"func (b *BundleFactory) GetByAnnotation(annotationSelector string) ([]Document, error) {"},{"line_number":213,"context_line":"\t// Construct kustomize annotation selector"},{"line_number":214,"context_line":"\tfilter :\u003d NewSelector().ByAnnotation(annotationSelector)"},{"line_number":215,"context_line":"\t// pass it to the selector"},{"line_number":216,"context_line":"\treturn b.Select(filter)"},{"line_number":217,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_8bdfe3d4","line":214,"range":{"start_line":214,"start_character":1,"end_line":214,"end_character":7},"updated":"2020-03-03 22:04:34.000000000","message":"ditto","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"8b18b2e892a996744ff2990e0a71fe51689e1b29","unresolved":false,"context_lines":[{"line_number":211,"context_line":"// GetByAnnotation is a convenience method to get documents for a particular annotation"},{"line_number":212,"context_line":"func (b *BundleFactory) GetByAnnotation(annotationSelector string) ([]Document, error) {"},{"line_number":213,"context_line":"\t// Construct kustomize annotation selector"},{"line_number":214,"context_line":"\tfilter :\u003d NewSelector().ByAnnotation(annotationSelector)"},{"line_number":215,"context_line":"\t// pass it to the selector"},{"line_number":216,"context_line":"\treturn b.Select(filter)"},{"line_number":217,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_ce3de92b","line":214,"range":{"start_line":214,"start_character":1,"end_line":214,"end_character":7},"in_reply_to":"1fa4df85_8bdfe3d4","updated":"2020-03-03 22:35:07.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":219,"context_line":"// GetByLabel is a convenience method to get documents for a particular label"},{"line_number":220,"context_line":"func (b *BundleFactory) GetByLabel(labelSelector string) ([]Document, error) {"},{"line_number":221,"context_line":"\t// Construct kustomize label selector"},{"line_number":222,"context_line":"\tfilter :\u003d NewSelector().ByLabel(labelSelector)"},{"line_number":223,"context_line":"\t// pass it to the selector"},{"line_number":224,"context_line":"\treturn b.Select(filter)"},{"line_number":225,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_2bf26f71","line":222,"range":{"start_line":222,"start_character":1,"end_line":222,"end_character":7},"updated":"2020-03-03 22:04:34.000000000","message":"ditto","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"8b18b2e892a996744ff2990e0a71fe51689e1b29","unresolved":false,"context_lines":[{"line_number":219,"context_line":"// GetByLabel is a convenience method to get documents for a particular label"},{"line_number":220,"context_line":"func (b *BundleFactory) GetByLabel(labelSelector string) ([]Document, error) {"},{"line_number":221,"context_line":"\t// Construct kustomize label selector"},{"line_number":222,"context_line":"\tfilter :\u003d NewSelector().ByLabel(labelSelector)"},{"line_number":223,"context_line":"\t// pass it to the selector"},{"line_number":224,"context_line":"\treturn b.Select(filter)"},{"line_number":225,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_8e4371af","line":222,"range":{"start_line":222,"start_character":1,"end_line":222,"end_character":7},"in_reply_to":"1fa4df85_2bf26f71","updated":"2020-03-03 22:35:07.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":227,"context_line":"// GetByGvk is a convenience method to get documents for a particular Gvk tuple"},{"line_number":228,"context_line":"func (b *BundleFactory) GetByGvk(group, version, kind string) ([]Document, error) {"},{"line_number":229,"context_line":"\t// Construct kustomize gvk object"},{"line_number":230,"context_line":"\tfilter :\u003d NewSelector().ByGvk(group, version, kind)"},{"line_number":231,"context_line":"\t// pass it to the selector"},{"line_number":232,"context_line":"\treturn b.Select(filter)"},{"line_number":233,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_ebe777ab","line":230,"range":{"start_line":230,"start_character":1,"end_line":230,"end_character":7},"updated":"2020-03-03 22:04:34.000000000","message":"ditto","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"8b18b2e892a996744ff2990e0a71fe51689e1b29","unresolved":false,"context_lines":[{"line_number":227,"context_line":"// GetByGvk is a convenience method to get documents for a particular Gvk tuple"},{"line_number":228,"context_line":"func (b *BundleFactory) GetByGvk(group, version, kind string) ([]Document, error) {"},{"line_number":229,"context_line":"\t// Construct kustomize gvk object"},{"line_number":230,"context_line":"\tfilter :\u003d NewSelector().ByGvk(group, version, kind)"},{"line_number":231,"context_line":"\t// pass it to the selector"},{"line_number":232,"context_line":"\treturn b.Select(filter)"},{"line_number":233,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_2e16fda9","line":230,"range":{"start_line":230,"start_character":1,"end_line":230,"end_character":7},"in_reply_to":"1fa4df85_ebe777ab","updated":"2020-03-03 22:35:07.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"}],"pkg/document/bundle_test.go":[{"author":{"_account_id":29624,"name":"Alexander Hughes","email":"Alexander.Hughes@pm.me","username":"alexanderhughes"},"change_message_id":"ffde12d1184532b10e0bae1a2f548ccb42c64758","unresolved":false,"context_lines":[{"line_number":91,"context_line":"\t\tdocs, err :\u003d bundle.Select(selector)"},{"line_number":92,"context_line":"\t\trequire.NoError(err, \"Error trying to select labeled with name resources\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"\t\tassert.Len(docs, 1, \"SelectByLabelAndName returned wrong number of resources\")"},{"line_number":95,"context_line":"\t})"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"\tt.Run(\"Write\", func(t *testing.T) {"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_f2d45122","line":94,"range":{"start_line":94,"start_character":53,"end_line":94,"end_character":78},"updated":"2020-03-03 14:56:50.000000000","message":"more than one resource (from length assertion), would be useful to know which label and name caused the error for debugging","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"59ed41285bb580afc1e404dc660a9e07812691a3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"\t\tdocs, err :\u003d bundle.Select(selector)"},{"line_number":92,"context_line":"\t\trequire.NoError(err, \"Error trying to select labeled with name resources\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"\t\tassert.Len(docs, 1, \"SelectByLabelAndName returned wrong number of resources\")"},{"line_number":95,"context_line":"\t})"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"\tt.Run(\"Write\", func(t *testing.T) {"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_2bd9147e","line":94,"range":{"start_line":94,"start_character":53,"end_line":94,"end_character":78},"in_reply_to":"1fa4df85_f2d45122","updated":"2020-03-03 16:54:00.000000000","message":"Here is the output of what a test failure might look like:\n\nhttp://ix.io/2dhL\n\nIn my opinion, the Message is redundant and not needed, although I understand that it could be helpful","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":91,"context_line":"\t\tdocs, err :\u003d bundle.Select(selector)"},{"line_number":92,"context_line":"\t\trequire.NoError(err, \"Error trying to select labeled with name resources\")"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"\t\tassert.Len(docs, 1, \"SelectByLabelAndName returned wrong number of resources\")"},{"line_number":95,"context_line":"\t})"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"\tt.Run(\"Write\", func(t *testing.T) {"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_b049f131","line":94,"range":{"start_line":94,"start_character":53,"end_line":94,"end_character":78},"in_reply_to":"1fa4df85_f2d45122","updated":"2020-03-03 16:24:40.000000000","message":"if the test fails, it will return the line in which it had failed, and we can easily check the labels. I\u0027ve been adding these to messages, but was told, that this is not needed, as testify takes care of that.","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"}],"pkg/document/selectors.go":[{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"ef3ca8abf20aad542e061687c51a6d1686f7b49d","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"// NewFilter returns instance of Filter container"},{"line_number":14,"context_line":"func NewFilter() Filter {"},{"line_number":15,"context_line":"\treturn Filter{Selector: types.Selector{}}"},{"line_number":16,"context_line":"}"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"// Following set of functions allows to build filter object"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_2651afd9","line":15,"range":{"start_line":15,"start_character":25,"end_line":15,"end_character":41},"updated":"2020-02-25 20:49:47.000000000","message":"Since this is the 0-value for Selector, it\u0027s not needed here","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"fcff640f757e857aaf36029860b53fd85a6f9548","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"// NewFilter returns instance of Filter container"},{"line_number":14,"context_line":"func NewFilter() Filter {"},{"line_number":15,"context_line":"\treturn Filter{Selector: types.Selector{}}"},{"line_number":16,"context_line":"}"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"// Following set of functions allows to build filter object"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_ff03160c","line":15,"range":{"start_line":15,"start_character":25,"end_line":15,"end_character":41},"in_reply_to":"1fa4df85_2651afd9","updated":"2020-02-25 23:32:28.000000000","message":"Done","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"ef3ca8abf20aad542e061687c51a6d1686f7b49d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\treturn f"},{"line_number":53,"context_line":"}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"// LabelSelector abstraction for label selectors, this will be needed later"},{"line_number":56,"context_line":"// for combining different labels selectors, for example we may consider having"},{"line_number":57,"context_line":"// combining two label selectors, current kubernetes implementation of selectors"},{"line_number":58,"context_line":"//  allows to simply join label selectors using \",\""},{"line_number":59,"context_line":"type LabelSelector struct {"},{"line_number":60,"context_line":"\tpayload string"},{"line_number":61,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_86cbc3a3","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":51},"updated":"2020-02-25 20:49:47.000000000","message":"Q: I\u0027m not sure I follow this. Couldn\u0027t we simply add logic to ByAnnotation / ByLabel that appends to f.AnnotationSelector / f.LabelSelector?","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"6fc38c0f2ea25fca5f742bdd50fe5eea94ca1bf7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\treturn f"},{"line_number":53,"context_line":"}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"// LabelSelector abstraction for label selectors, this will be needed later"},{"line_number":56,"context_line":"// for combining different labels selectors, for example we may consider having"},{"line_number":57,"context_line":"// combining two label selectors, current kubernetes implementation of selectors"},{"line_number":58,"context_line":"//  allows to simply join label selectors using \",\""},{"line_number":59,"context_line":"type LabelSelector struct {"},{"line_number":60,"context_line":"\tpayload string"},{"line_number":61,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_7e84e80c","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":51},"in_reply_to":"1fa4df85_44bce304","updated":"2020-02-27 19:18:32.000000000","message":"Yes, that\u0027s what I meant. It would be used something like\n\nfilter :\u003d document.NewFilter().ByLabel(\"fooKey\u003dfooVal\").ByLabel(\"barKey\u003dbarVal\")\n\nAnd the resulting filter.LabelSelector would be \"fooKey\u003dfooVal,barKey\u003dbarVal\"","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"d3fb2b80a1e0b57c7145272ff14f40dbfce38e55","unresolved":false,"context_lines":[{"line_number":52,"context_line":"\treturn f"},{"line_number":53,"context_line":"}"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"// LabelSelector abstraction for label selectors, this will be needed later"},{"line_number":56,"context_line":"// for combining different labels selectors, for example we may consider having"},{"line_number":57,"context_line":"// combining two label selectors, current kubernetes implementation of selectors"},{"line_number":58,"context_line":"//  allows to simply join label selectors using \",\""},{"line_number":59,"context_line":"type LabelSelector struct {"},{"line_number":60,"context_line":"\tpayload string"},{"line_number":61,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":3,"id":"1fa4df85_44bce304","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":51},"in_reply_to":"1fa4df85_86cbc3a3","updated":"2020-02-25 22:25:35.000000000","message":"this is how i thought, to use it, for example:\npackage bootstrap/isogen, \n1) takes 2 constant labelselectors from package document:\n- BootstrapSecretSelector\n- ClusterTypeSelector\n2) selector :\u003d document.combineSelectors(BootstrapSecretSelector, ClusterTypeSelector)\n3) filter \u003d document.NewFilter().ByLabel(selector)\n4) bundle.Select(Filter)\n\nWhen talking about adding logic to ByLabel(), do u mean, that it would instead of using new string as complete selector, would check if selector string is already defined, and then join strings using \",\" separator?","commit_id":"320dd076e93aa693d6e497ef96378d27fe772fbe"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"daf57bd0acdbf167915cf2daac22cf5417b22f4b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\t\"sigs.k8s.io/kustomize/v3/pkg/types\""},{"line_number":6,"context_line":")"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"// Filter abstracts selector from kustomize project"},{"line_number":9,"context_line":"type Filter struct {"},{"line_number":10,"context_line":"\ttypes.Selector"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_54d0bf1f","line":8,"range":{"start_line":8,"start_character":3,"end_line":8,"end_character":51},"updated":"2020-03-02 21:34:55.000000000","message":"if it\u0027s merely an abstraction layer in front of a kustomize Selector, what about just calling it Selector? That could be more self documenting. If we need to add a higher level construct in the future which is about more than just selectors (e.g. logical junctors), then we could use `Filter` for that, and Selectors could just be an input into that.","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"4f5f263fdded3c45961b9b1a092e101a728de7ec","unresolved":false,"context_lines":[{"line_number":5,"context_line":"\t\"sigs.k8s.io/kustomize/v3/pkg/types\""},{"line_number":6,"context_line":")"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"// Filter abstracts selector from kustomize project"},{"line_number":9,"context_line":"type Filter struct {"},{"line_number":10,"context_line":"\ttypes.Selector"},{"line_number":11,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_4f226a54","line":8,"range":{"start_line":8,"start_character":3,"end_line":8,"end_character":51},"in_reply_to":"1fa4df85_54d0bf1f","updated":"2020-03-02 22:43:05.000000000","message":"Done","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"daf57bd0acdbf167915cf2daac22cf5417b22f4b","unresolved":false,"context_lines":[{"line_number":34,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":35,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":36,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":37,"context_line":"// however because these are actually different enteties we should keep them"},{"line_number":38,"context_line":"// separated from each other from the beginning"},{"line_number":39,"context_line":"func (f Filter) ByLabel(ls string) Filter { //nolint"},{"line_number":40,"context_line":"\tf.LabelSelector \u003d ls"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_940f17e0","line":37,"range":{"start_line":37,"start_character":48,"end_line":37,"end_character":56},"updated":"2020-03-02 21:34:55.000000000","message":"spelling: entities","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"4f5f263fdded3c45961b9b1a092e101a728de7ec","unresolved":false,"context_lines":[{"line_number":34,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":35,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":36,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":37,"context_line":"// however because these are actually different enteties we should keep them"},{"line_number":38,"context_line":"// separated from each other from the beginning"},{"line_number":39,"context_line":"func (f Filter) ByLabel(ls string) Filter { //nolint"},{"line_number":40,"context_line":"\tf.LabelSelector \u003d ls"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_2f17eeef","line":37,"range":{"start_line":37,"start_character":48,"end_line":37,"end_character":56},"in_reply_to":"1fa4df85_940f17e0","updated":"2020-03-02 22:43:05.000000000","message":"Done","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"daf57bd0acdbf167915cf2daac22cf5417b22f4b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":46,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":47,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":48,"context_line":"// however because these are actually different enteties we should keep them"},{"line_number":49,"context_line":"// separated from each other from the beginning"},{"line_number":50,"context_line":"func (f Filter) ByAnnotation(as string) Filter { //nolint"},{"line_number":51,"context_line":"\tf.AnnotationSelector \u003d as"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_54f99fc5","line":48,"range":{"start_line":48,"start_character":48,"end_line":48,"end_character":56},"updated":"2020-03-02 21:34:55.000000000","message":"spelling: entities","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"4f5f263fdded3c45961b9b1a092e101a728de7ec","unresolved":false,"context_lines":[{"line_number":45,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":46,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":47,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":48,"context_line":"// however because these are actually different enteties we should keep them"},{"line_number":49,"context_line":"// separated from each other from the beginning"},{"line_number":50,"context_line":"func (f Filter) ByAnnotation(as string) Filter { //nolint"},{"line_number":51,"context_line":"\tf.AnnotationSelector \u003d as"}],"source_content_type":"text/x-go","patch_set":12,"id":"1fa4df85_cfd3ba37","line":48,"range":{"start_line":48,"start_character":48,"end_line":48,"end_character":56},"in_reply_to":"1fa4df85_54f99fc5","updated":"2020-03-02 22:43:05.000000000","message":"Done","commit_id":"23f3daa62f63cf991e0be6b362535c56015e589b"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":12,"context_line":"\ttypes.Selector"},{"line_number":13,"context_line":"}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"// NewSelector returns instance of Filter container"},{"line_number":16,"context_line":"func NewSelector() Selector {"},{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_70e1392a","line":15,"range":{"start_line":15,"start_character":35,"end_line":15,"end_character":41},"updated":"2020-03-03 16:05:09.000000000","message":"Selector","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":12,"context_line":"\ttypes.Selector"},{"line_number":13,"context_line":"}"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"// NewSelector returns instance of Filter container"},{"line_number":16,"context_line":"func NewSelector() Selector {"},{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_b03d712c","line":15,"range":{"start_line":15,"start_character":35,"end_line":15,"end_character":41},"in_reply_to":"1fa4df85_70e1392a","updated":"2020-03-03 16:24:40.000000000","message":"Done","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"// ByLabel filter by label selector"},{"line_number":36,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":37,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":38,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":39,"context_line":"// however because these are actually different entities we should keep them"},{"line_number":40,"context_line":"// separated from each other from the beginning"},{"line_number":41,"context_line":"func (s Selector) ByLabel(labelSelector string) Selector {"},{"line_number":42,"context_line":"\tif s.LabelSelector !\u003d \"\" {"},{"line_number":43,"context_line":"\t\tstrings.Join([]string{s.LabelSelector, labelSelector}, \",\")"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_f0a7690a","line":40,"range":{"start_line":36,"start_character":0,"end_line":40,"end_character":47},"updated":"2020-03-03 16:05:09.000000000","message":"It doesn\u0027t look like the linter is still disabled","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"// ByLabel filter by label selector"},{"line_number":36,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":37,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":38,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":39,"context_line":"// however because these are actually different entities we should keep them"},{"line_number":40,"context_line":"// separated from each other from the beginning"},{"line_number":41,"context_line":"func (s Selector) ByLabel(labelSelector string) Selector {"},{"line_number":42,"context_line":"\tif s.LabelSelector !\u003d \"\" {"},{"line_number":43,"context_line":"\t\tstrings.Join([]string{s.LabelSelector, labelSelector}, \",\")"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_f037694c","line":40,"range":{"start_line":36,"start_character":0,"end_line":40,"end_character":47},"in_reply_to":"1fa4df85_f0a7690a","updated":"2020-03-03 16:24:40.000000000","message":"Done","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"// separated from each other from the beginning"},{"line_number":41,"context_line":"func (s Selector) ByLabel(labelSelector string) Selector {"},{"line_number":42,"context_line":"\tif s.LabelSelector !\u003d \"\" {"},{"line_number":43,"context_line":"\t\tstrings.Join([]string{s.LabelSelector, labelSelector}, \",\")"},{"line_number":44,"context_line":"\t} else {"},{"line_number":45,"context_line":"\t\ts.LabelSelector \u003d labelSelector"},{"line_number":46,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_307d017f","line":43,"updated":"2020-03-03 16:05:09.000000000","message":"missing the assignment\n\ns.LabelSelector \u003d strings.Join(...)","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":40,"context_line":"// separated from each other from the beginning"},{"line_number":41,"context_line":"func (s Selector) ByLabel(labelSelector string) Selector {"},{"line_number":42,"context_line":"\tif s.LabelSelector !\u003d \"\" {"},{"line_number":43,"context_line":"\t\tstrings.Join([]string{s.LabelSelector, labelSelector}, \",\")"},{"line_number":44,"context_line":"\t} else {"},{"line_number":45,"context_line":"\t\ts.LabelSelector \u003d labelSelector"},{"line_number":46,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_904075a7","line":43,"in_reply_to":"1fa4df85_307d017f","updated":"2020-03-03 16:24:40.000000000","message":"Done","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"// ByAnnotation filter by annotation selector."},{"line_number":51,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":52,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":53,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":54,"context_line":"// however because these are actually different entities we should keep them"},{"line_number":55,"context_line":"// separated from each other from the beginning"},{"line_number":56,"context_line":"func (s Selector) ByAnnotation(annotationSelector string) Selector {"},{"line_number":57,"context_line":"\tif s.AnnotationSelector !\u003d \"\" {"},{"line_number":58,"context_line":"\t\tstrings.Join([]string{s.AnnotationSelector, annotationSelector}, \",\")"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_90b07545","line":55,"range":{"start_line":51,"start_character":0,"end_line":55,"end_character":47},"updated":"2020-03-03 16:05:09.000000000","message":"ditto: linter","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":48,"context_line":"}"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"// ByAnnotation filter by annotation selector."},{"line_number":51,"context_line":"// Linting is disabled because right now, there is no difference in usage of"},{"line_number":52,"context_line":"// annotation selectors and label selectors (interfacer module suggest"},{"line_number":53,"context_line":"// to accept Stringer interface instead of annotation or label selector)"},{"line_number":54,"context_line":"// however because these are actually different entities we should keep them"},{"line_number":55,"context_line":"// separated from each other from the beginning"},{"line_number":56,"context_line":"func (s Selector) ByAnnotation(annotationSelector string) Selector {"},{"line_number":57,"context_line":"\tif s.AnnotationSelector !\u003d \"\" {"},{"line_number":58,"context_line":"\t\tstrings.Join([]string{s.AnnotationSelector, annotationSelector}, \",\")"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_3032e160","line":55,"range":{"start_line":51,"start_character":0,"end_line":55,"end_character":47},"in_reply_to":"1fa4df85_90b07545","updated":"2020-03-03 16:24:40.000000000","message":"Done","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":28869,"name":"Ian Howell","email":"ian.howell0@gmail.com","username":"ian"},"change_message_id":"8d9591d00673033c089ed41e3447467a2a0115d6","unresolved":false,"context_lines":[{"line_number":55,"context_line":"// separated from each other from the beginning"},{"line_number":56,"context_line":"func (s Selector) ByAnnotation(annotationSelector string) Selector {"},{"line_number":57,"context_line":"\tif s.AnnotationSelector !\u003d \"\" {"},{"line_number":58,"context_line":"\t\tstrings.Join([]string{s.AnnotationSelector, annotationSelector}, \",\")"},{"line_number":59,"context_line":"\t} else {"},{"line_number":60,"context_line":"\t\ts.AnnotationSelector \u003d annotationSelector"},{"line_number":61,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_f07209ad","line":58,"updated":"2020-03-03 16:05:09.000000000","message":"ditto: assignment","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6e5eec0a5f27e4ae9effab23bd6e738a01f6fc10","unresolved":false,"context_lines":[{"line_number":55,"context_line":"// separated from each other from the beginning"},{"line_number":56,"context_line":"func (s Selector) ByAnnotation(annotationSelector string) Selector {"},{"line_number":57,"context_line":"\tif s.AnnotationSelector !\u003d \"\" {"},{"line_number":58,"context_line":"\t\tstrings.Join([]string{s.AnnotationSelector, annotationSelector}, \",\")"},{"line_number":59,"context_line":"\t} else {"},{"line_number":60,"context_line":"\t\ts.AnnotationSelector \u003d annotationSelector"},{"line_number":61,"context_line":"\t}"}],"source_content_type":"text/x-go","patch_set":13,"id":"1fa4df85_d0326d5e","line":58,"in_reply_to":"1fa4df85_f07209ad","updated":"2020-03-03 16:24:40.000000000","message":"Done","commit_id":"a8c504b2f059dbd0f50c421e708634c8d8f5da95"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"// Following set of functions allows to build filter object"},{"line_number":21,"context_line":"// by name, gvk, label selector and annotation selector"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// ByName filter by name"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_6ba94722","line":20,"range":{"start_line":20,"start_character":46,"end_line":20,"end_character":52},"updated":"2020-03-03 22:04:34.000000000","message":"ditto","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"// Following set of functions allows to build filter object"},{"line_number":21,"context_line":"// by name, gvk, label selector and annotation selector"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// ByName filter by name"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_8e8cd17f","line":20,"range":{"start_line":20,"start_character":40,"end_line":20,"end_character":46},"updated":"2020-03-03 22:04:34.000000000","message":"this API gives the impression that it implements the \"builder pattern\" (returning new objects from each method call), but instead mutates the objects. the builder pattern would allow reusing selectors without worrying that some other code path clobbers your selector object.","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"8b18b2e892a996744ff2990e0a71fe51689e1b29","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"// Following set of functions allows to build filter object"},{"line_number":21,"context_line":"// by name, gvk, label selector and annotation selector"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// ByName filter by name"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_4ebfb9af","line":20,"range":{"start_line":20,"start_character":46,"end_line":20,"end_character":52},"in_reply_to":"1fa4df85_6ba94722","updated":"2020-03-03 22:35:07.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"0305972758e9c58a5818d4d673d885a117fc0fec","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"// Following set of functions allows to build filter object"},{"line_number":21,"context_line":"// by name, gvk, label selector and annotation selector"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// ByName filter by name"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_eecea52b","line":20,"range":{"start_line":20,"start_character":46,"end_line":20,"end_character":52},"in_reply_to":"1fa4df85_6ba94722","updated":"2020-03-03 22:43:32.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"0305972758e9c58a5818d4d673d885a117fc0fec","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"// Following set of functions allows to build filter object"},{"line_number":21,"context_line":"// by name, gvk, label selector and annotation selector"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// ByName filter by name"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_ced969f3","line":20,"range":{"start_line":20,"start_character":40,"end_line":20,"end_character":46},"in_reply_to":"1fa4df85_8e8cd17f","updated":"2020-03-03 22:43:32.000000000","message":"sorry, do you mean each method should return new instance of selector instead of changing existing one?","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"eb9502bd35836daf95c208f76e71cd6a62ab472e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\treturn Selector{}"},{"line_number":18,"context_line":"}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"// Following set of functions allows to build filter object"},{"line_number":21,"context_line":"// by name, gvk, label selector and annotation selector"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"// ByName filter by name"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_1370fddb","line":20,"range":{"start_line":20,"start_character":40,"end_line":20,"end_character":46},"in_reply_to":"1fa4df85_ced969f3","updated":"2020-03-04 14:31:35.000000000","message":"yes, to make them easier to share and extend without accidentally clobbering. but it\u0027s not vital.","commit_id":"1057d9691834c307dc8053758110364994900a96"}],"pkg/remote/remote_direct.go":[{"author":{"_account_id":27715,"name":"Sean Eagan","email":"seaneagan@microsoft.com","username":"seaneagan"},"change_message_id":"153c8f31a60eedf6b65114706d1951ac03ef8fb2","unresolved":false,"context_lines":[{"line_number":88,"context_line":"\t}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"\tls :\u003d document.EphemeralClusterSelector"},{"line_number":91,"context_line":"\tfilter :\u003d document.NewSelector()."},{"line_number":92,"context_line":"\t\tByGvk(\"\", \"\", AirshipHostKind)."},{"line_number":93,"context_line":"\t\tByLabel(ls)"},{"line_number":94,"context_line":"\tdocs, err :\u003d docBundle.Select(filter)"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_8bee03b2","line":91,"range":{"start_line":91,"start_character":1,"end_line":91,"end_character":7},"updated":"2020-03-03 22:04:34.000000000","message":"selector","commit_id":"1057d9691834c307dc8053758110364994900a96"},{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"8b18b2e892a996744ff2990e0a71fe51689e1b29","unresolved":false,"context_lines":[{"line_number":88,"context_line":"\t}"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"\tls :\u003d document.EphemeralClusterSelector"},{"line_number":91,"context_line":"\tfilter :\u003d document.NewSelector()."},{"line_number":92,"context_line":"\t\tByGvk(\"\", \"\", AirshipHostKind)."},{"line_number":93,"context_line":"\t\tByLabel(ls)"},{"line_number":94,"context_line":"\tdocs, err :\u003d docBundle.Select(filter)"}],"source_content_type":"text/x-go","patch_set":15,"id":"1fa4df85_ae298de6","line":91,"range":{"start_line":91,"start_character":1,"end_line":91,"end_character":7},"in_reply_to":"1fa4df85_8bee03b2","updated":"2020-03-03 22:35:07.000000000","message":"Done","commit_id":"1057d9691834c307dc8053758110364994900a96"}]}
