)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"22261793b5e623b507da67d31d5379d1ebfb089a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"70151865_50d512af","updated":"2022-06-29 16:40:25.000000000","message":"Thanks for the review, next PS adjusted the copy paste.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"15e714900714f0f831a1adb92e250fdc15d16240","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bdc7d163_9546b7c1","updated":"2022-06-30 00:38:19.000000000","message":"\u003e Patch Set 7:\n\u003e \n\u003e As a black-box that outputs a bunch of boilerplate YAML, the golang stuff is probably something that most contributers could deal with.\n\u003e \n\u003e As for other operators importing golang from this repo: I don\u0027t think we should support that.  Ultimately, our goal here is to provide a Zuul operator; not to provide a building block for other people to build operators on top of.  The current implementation is Python, which is an implementation detail no one should care about.  How we build the openapi schema is an even more minor implementation detail that people should care about even less.  In other words, we should feel free to change anything about those at any time with no regard to other users.  So I don\u0027t think we should do anything that leads people to believe that anything other than Kubernetes resources are an expected API for the operator.\n\u003e \n\nI\u0027m not sure to understand, the go structs just define the Kubernetes resources. They can be used to create the Zuul object using a runtime client (https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/client#Object), instead of relying on the unstructured package. \n\nWe would like to use the zuul-operator to manage the zuul service for the sf-operator, and having the go definition provides a useful API. Perhaps others might be interested in having such resources definition available.\n\n\u003e Given that, plus the fact that we don\u0027t expect frequent changes to the CRD, I\u0027m not sure the additional complexity/maintenance of the build machinery for this is worth it.\n\nIf you prefer I can remove the go code, but I find it easier that way to maintain the openapi schema. Moreover we might need a few more CRDs to implement backup and restore of the zuul secrets.","commit_id":"3f6ce8ec4b2b7c7e098e8e2419f5706b02b81e84"}],"api/v1alpha2/groupversion_info.go":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"47caa2e0aea66d8c4e03cd56230c5a6476c4bf9f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"// Copyright (C) 2022 Red Hat"},{"line_number":2,"context_line":"// SPDX-License-Identifier: Apache-2.0"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"// Package v1 contains API Schema definitions for the sf v1 API group"},{"line_number":5,"context_line":"//+kubebuilder:object:generate\u003dtrue"},{"line_number":6,"context_line":"//+groupName\u003doperator.zuul-ci.org"},{"line_number":7,"context_line":"package v1alpha2"}],"source_content_type":"text/x-go","patch_set":5,"id":"e231476b_411835b6","line":4,"range":{"start_line":4,"start_character":54,"end_line":4,"end_character":56},"updated":"2022-06-29 15:43:39.000000000","message":"This looks like copy paste that needs editing.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"22261793b5e623b507da67d31d5379d1ebfb089a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"// Copyright (C) 2022 Red Hat"},{"line_number":2,"context_line":"// SPDX-License-Identifier: Apache-2.0"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"// Package v1 contains API Schema definitions for the sf v1 API group"},{"line_number":5,"context_line":"//+kubebuilder:object:generate\u003dtrue"},{"line_number":6,"context_line":"//+groupName\u003doperator.zuul-ci.org"},{"line_number":7,"context_line":"package v1alpha2"}],"source_content_type":"text/x-go","patch_set":5,"id":"5ac4b896_a61abbf5","line":4,"range":{"start_line":4,"start_character":54,"end_line":4,"end_character":56},"in_reply_to":"e231476b_411835b6","updated":"2022-06-29 16:40:25.000000000","message":"Done","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"}],"api/v1alpha2/zuul_types.go":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"47caa2e0aea66d8c4e03cd56230c5a6476c4bf9f","unresolved":true,"context_lines":[{"line_number":147,"context_line":"//+kubebuilder:object:root\u003dtrue"},{"line_number":148,"context_line":"//+kubebuilder:subresource:status"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"// SoftwareFactory is the Schema for the softwarefactories API"},{"line_number":151,"context_line":"type Zuul struct {"},{"line_number":152,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":153,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":5,"id":"68b6c0c0_93c3ceba","line":150,"updated":"2022-06-29 15:43:39.000000000","message":"This looks like copy pasting that needs to be updated.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"22261793b5e623b507da67d31d5379d1ebfb089a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"//+kubebuilder:object:root\u003dtrue"},{"line_number":148,"context_line":"//+kubebuilder:subresource:status"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"// SoftwareFactory is the Schema for the softwarefactories API"},{"line_number":151,"context_line":"type Zuul struct {"},{"line_number":152,"context_line":"\tmetav1.TypeMeta   `json:\",inline\"`"},{"line_number":153,"context_line":"\tmetav1.ObjectMeta `json:\"metadata,omitempty\"`"}],"source_content_type":"text/x-go","patch_set":5,"id":"be80e279_38ca1840","line":150,"in_reply_to":"68b6c0c0_93c3ceba","updated":"2022-06-29 16:40:25.000000000","message":"Done","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"}],"deploy/crds/operator.zuul-ci.org_zuuls.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"47caa2e0aea66d8c4e03cd56230c5a6476c4bf9f","unresolved":true,"context_lines":[{"line_number":18,"context_line":"  - name: v1alpha2"},{"line_number":19,"context_line":"    schema:"},{"line_number":20,"context_line":"      openAPIV3Schema:"},{"line_number":21,"context_line":"        description: SoftwareFactory is the Schema for the softwarefactories API"},{"line_number":22,"context_line":"        properties:"},{"line_number":23,"context_line":"          apiVersion:"},{"line_number":24,"context_line":"            description: \u0027APIVersion defines the versioned schema of this representation"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"fee7f7ee_cfaad5c5","line":21,"updated":"2022-06-29 15:43:39.000000000","message":"More copy paste to edit.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"22261793b5e623b507da67d31d5379d1ebfb089a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"  - name: v1alpha2"},{"line_number":19,"context_line":"    schema:"},{"line_number":20,"context_line":"      openAPIV3Schema:"},{"line_number":21,"context_line":"        description: SoftwareFactory is the Schema for the softwarefactories API"},{"line_number":22,"context_line":"        properties:"},{"line_number":23,"context_line":"          apiVersion:"},{"line_number":24,"context_line":"            description: \u0027APIVersion defines the versioned schema of this representation"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"79c1c7b8_36ad8aa0","line":21,"in_reply_to":"fee7f7ee_cfaad5c5","updated":"2022-06-29 16:40:25.000000000","message":"That one is generated from the go struct comment.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"47caa2e0aea66d8c4e03cd56230c5a6476c4bf9f","unresolved":true,"context_lines":[{"line_number":105,"context_line":"                      type: string"},{"line_number":106,"context_line":"                  type: object"},{"line_number":107,"context_line":"                type: array"},{"line_number":108,"context_line":"              jobVolumes:"},{"line_number":109,"context_line":"                items:"},{"line_number":110,"context_line":"                  properties:"},{"line_number":111,"context_line":"                    access:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"fdf3f913_9b5098a1","line":108,"updated":"2022-06-29 15:43:39.000000000","message":"I guess there isn\u0027t a generic method for indicating to k8s that you want permanent storage to be attached and then let it determine where that content should come from? Mostly calling this out as anytime some new method wants to be supported you need to plumb it through here it looks like.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"22261793b5e623b507da67d31d5379d1ebfb089a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                      type: string"},{"line_number":106,"context_line":"                  type: object"},{"line_number":107,"context_line":"                type: array"},{"line_number":108,"context_line":"              jobVolumes:"},{"line_number":109,"context_line":"                items:"},{"line_number":110,"context_line":"                  properties:"},{"line_number":111,"context_line":"                    access:"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"64b4a8a9_e70cb199","line":108,"in_reply_to":"fdf3f913_9b5098a1","updated":"2022-06-29 16:40:25.000000000","message":"I think this is what the Volume object is made for: let k8s determine where the content come from. The attributes values are the one supported by the API, so if a new method is added, then we\u0027ll have to update the minimum api version and this field will be updated accordingly.","commit_id":"1d7192aadbe3408a42210c5f4b356c3dd31d69de"}]}
