)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"b62e908895d58f2a97b0c57cf0e180be8fde2dcd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"93948b7d_8814275a","updated":"2026-08-17 07:32:26.000000000","message":"Instead of completely replacing tarballs with Git, perhaps we could introduce a configuration toggle that lets users choose between both? This approach would keep the setup flexible and allow users to easily point builds to their own custom repositories or mirrors?","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"dd05a81c2e77ed517a33c146b1db4f4db4ab4005","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"5b48ad19_8915d534","updated":"2026-08-19 08:35:08.000000000","message":"recheck","commit_id":"a1c43e13655ee3619d29dace65a1398cb277e26c"}],"kolla/common/config.py":[{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"b62e908895d58f2a97b0c57cf0e180be8fde2dcd","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"OPENSTACK_RELEASE \u003d \u0027master\u0027"},{"line_number":42,"context_line":"OPENSTACK_RELEASE_CODENAME \u003d \u0027Gazpacho\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"_PROFILE_OPTS \u003d ["},{"line_number":45,"context_line":"    cfg.ListOpt(\u0027infra\u0027,"},{"line_number":46,"context_line":"                default\u003d["}],"source_content_type":"text/x-python","patch_set":3,"id":"82284459_1be25ca8","line":43,"updated":"2026-08-17 07:32:26.000000000","message":"```\nTARBALLS_BASE \u003d \"https://tarballs.opendev.org\"\nGITHUB_BASE \u003d \"https://github.com/openstack\"\n```","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"b62e908895d58f2a97b0c57cf0e180be8fde2dcd","unresolved":true,"context_lines":[{"line_number":209,"context_line":"    cfg.StrOpt(\u0027summary-json-file\u0027,"},{"line_number":210,"context_line":"               help\u003d\u0027Name of a file to write the build summary to when format \u0027"},{"line_number":211,"context_line":"                    \u0027is json. If unset, the summary will be written to \u0027"},{"line_number":212,"context_line":"                    \u0027standard output\u0027),"},{"line_number":213,"context_line":"    cfg.IntOpt(\u0027threads\u0027, short\u003d\u0027T\u0027, default\u003d8, min\u003d1,"},{"line_number":214,"context_line":"               help\u003d(\u0027The number of threads to use while building.\u0027"},{"line_number":215,"context_line":"                     \u0027 (Note: setting to one will allow real time\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1581d794_43ea7e79","line":212,"updated":"2026-08-17 07:32:26.000000000","message":"```\n    cfg.StrOpt(\u0027tarballs-base\u0027, default\u003dTARBALLS_BASE,\n               help\u003d\u0027Base url to OpenStack tarballs\u0027),\n    cfg.StrOpt(\u0027github-base\u0027, default\u003dGITHUB_BASE,\n               help\u003d\u0027Base url to OpenStack GitHub mirrors\u0027),\n\n    cfg.StrOpt(\u0027default-source-type\u0027, default\u003d\u0027url\u0027,\n               choices\u003d[\u0027url\u0027, \u0027git\u0027],\n               help\u003d\u0027Default type of source to use for components (git or url)\u0027),\n```","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"375213a9f657ab02d05e0508227be687a0738651","unresolved":false,"context_lines":[{"line_number":301,"context_line":"               help\u003d\u0027URL of an extra pip index \u0027"},{"line_number":302,"context_line":"                    \u0027(sets ARG PIP_EXTRA_INDEX_URL)\u0027),"},{"line_number":303,"context_line":"    cfg.StrOpt(\u0027openstack_git_base\u0027,"},{"line_number":304,"context_line":"               help\u003d\u0027First portion of git url for openstack services,"},{"line_number":305,"context_line":"                     e.g. https://github.com/openstack or \u0027"},{"line_number":306,"context_line":"                     \u0027https://opendev.org/openstack\u0027,"},{"line_number":307,"context_line":"               default\u003d\u0027https://github.com/openstack/\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"4fdb5406_bb3389b2","line":304,"updated":"2026-08-18 19:27:44.000000000","message":"pep8: E999 SyntaxError: unterminated string literal (detected at line 304)","commit_id":"557369cd1f249b745714f94d34b80a841710188a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"e2b3be9da11e3f828ff52e735444ec81f013c02d","unresolved":false,"context_lines":[{"line_number":301,"context_line":"               help\u003d\u0027URL of an extra pip index \u0027"},{"line_number":302,"context_line":"                    \u0027(sets ARG PIP_EXTRA_INDEX_URL)\u0027),"},{"line_number":303,"context_line":"    cfg.StrOpt(\u0027openstack_git_base\u0027,"},{"line_number":304,"context_line":"               help\u003d\u0027First portion of git url for openstack services,"},{"line_number":305,"context_line":"                    \u0027e.g. https://github.com/openstack or \u0027"},{"line_number":306,"context_line":"                    \u0027https://opendev.org/openstack\u0027,"},{"line_number":307,"context_line":"               default\u003d\u0027https://github.com/openstack/\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ac1d02be_a469c967","line":304,"updated":"2026-08-18 19:53:23.000000000","message":"pep8: E999 SyntaxError: unterminated string literal (detected at line 304)","commit_id":"b05e7f5b79a1de55c3440b3d30a6319c147c8cb9"}],"kolla/common/sources.py":[{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"b62e908895d58f2a97b0c57cf0e180be8fde2dcd","unresolved":true,"context_lines":[{"line_number":9,"context_line":"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":10,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":11,"context_line":"# limitations under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"SOURCES \u003d {"},{"line_number":14,"context_line":"    \u0027openstack-base\u0027: {"},{"line_number":15,"context_line":"        \u0027type\u0027: \u0027git\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ab106959_7b41b773","line":12,"updated":"2026-08-17 07:32:26.000000000","message":"```\nfrom oslo_config import cfg\n\nCONF \u003d cfg.CONF\n\n# Helper dynamic source\ndef generate_source(project_name, custom_git_url\u003dNone, custom_tar_url\u003dNone):\n    source_type \u003d CONF.default_source_type\n    \n    if source_type \u003d\u003d \u0027git\u0027:\n        return {\n            \u0027type\u0027: \u0027git\u0027,\n            \u0027reference\u0027: \u0027${openstack_branch}\u0027,\n            \u0027location\u0027: custom_git_url or f\"$github_base/{project_name}.git\"\n        }\n    else: # url / tarball\n        return {\n            \u0027type\u0027: \u0027url\u0027,\n            \u0027location\u0027: custom_tar_url or f\"$tarballs_base/openstack/{project_name}/{project_name}-${{openstack_branch}}.tar.gz\"\n        }\n```","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"b62e908895d58f2a97b0c57cf0e180be8fde2dcd","unresolved":true,"context_lines":[{"line_number":11,"context_line":"# limitations under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"SOURCES \u003d {"},{"line_number":14,"context_line":"    \u0027openstack-base\u0027: {"},{"line_number":15,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":16,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":17,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/requirements.git\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"587af2bb_d6ac1ccb","line":14,"updated":"2026-08-17 07:32:26.000000000","message":"```\n    \u0027openstack-base\u0027: generate_source(\u0027requirements\u0027),\n    \u0027aodh-base\u0027: generate_source(\u0027aodh\u0027),\n    \u0027barbican-base\u0027: generate_source(\u0027barbican\u0027),\n```","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b6106a6e098396b31eda50a7eb50ca67e06e6d2c","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":439,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":440,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/networking-sfc.git\u0027),"},{"line_number":441,"context_line":"    \u0027trove-base\u0027: {"},{"line_number":442,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":443,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":444,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/trove.git\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"262d974e_d81ba691","line":441,"updated":"2026-08-17 07:20:50.000000000","message":"pep8: E999 SyntaxError: \u0027{\u0027 was never closed","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3dd4d5d5c1c9148ba9717dae55138aa070ef1b7b","unresolved":false,"context_lines":[{"line_number":438,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":439,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":440,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/networking-sfc.git\u0027),"},{"line_number":441,"context_line":"    \u0027trove-base\u0027: {"},{"line_number":442,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":443,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":444,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/trove.git\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"c77f747b_b4fa7fce","line":441,"updated":"2026-08-17 12:51:21.000000000","message":"pep8: E999 SyntaxError: \u0027{\u0027 was never closed","commit_id":"8da083e735b8ecfa2c302936cef78364e045f53c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e474ef92d4253a3d383cafda51072e1199ee278","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    \u0027horizon-plugin-fwaas-dashboard\u0027: {"},{"line_number":98,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":99,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":100,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/neutron-fwaas-dashboard.git\u0027)},"},{"line_number":101,"context_line":"    \u0027horizon-plugin-heat-dashboard\u0027: {"},{"line_number":102,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":103,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df16c560_7aa0c475","line":100,"updated":"2026-08-17 14:32:25.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"62143a72c3109810be268c7c0ff84db01e49387a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e474ef92d4253a3d383cafda51072e1199ee278","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    \u0027horizon-plugin-neutron-vpnaas-dashboard\u0027: {"},{"line_number":126,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":127,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":128,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/neutron-vpnaas-dashboard.git\u0027)},"},{"line_number":129,"context_line":"    \u0027horizon-plugin-octavia-dashboard\u0027: {"},{"line_number":130,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":131,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"c41870c1_20c2350a","line":128,"updated":"2026-08-17 14:32:25.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"62143a72c3109810be268c7c0ff84db01e49387a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e474ef92d4253a3d383cafda51072e1199ee278","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    \u0027neutron-base-plugin-networking-generic-switch\u0027: {"},{"line_number":228,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":229,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":230,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/networking-generic-switch.git\u0027)},"},{"line_number":231,"context_line":"    \u0027neutron-base-plugin-networking-sfc\u0027: {"},{"line_number":232,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":233,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1999308b_ad08707b","line":230,"updated":"2026-08-17 14:32:25.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"62143a72c3109810be268c7c0ff84db01e49387a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e474ef92d4253a3d383cafda51072e1199ee278","unresolved":false,"context_lines":[{"line_number":243,"context_line":"    \u0027neutron-bgp-dragent\u0027: {"},{"line_number":244,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":245,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":246,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/neutron-dynamic-routing.git\u0027)},"},{"line_number":247,"context_line":"    \u0027neutron-server-plugin-neutron-dynamic-routing\u0027: {"},{"line_number":248,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":249,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"709e4a95_6366b109","line":246,"updated":"2026-08-17 14:32:25.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"62143a72c3109810be268c7c0ff84db01e49387a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6e474ef92d4253a3d383cafda51072e1199ee278","unresolved":false,"context_lines":[{"line_number":247,"context_line":"    \u0027neutron-server-plugin-neutron-dynamic-routing\u0027: {"},{"line_number":248,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":249,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"},{"line_number":250,"context_line":"        \u0027location\u0027: (\u0027https://github.com/openstack/neutron-dynamic-routing.git\u0027)},"},{"line_number":251,"context_line":"    \u0027neutron-vpnaas-agent\u0027: {"},{"line_number":252,"context_line":"        \u0027type\u0027: \u0027git\u0027,"},{"line_number":253,"context_line":"        \u0027reference\u0027: \u0027${openstack_branch}\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"25ed614b_3c410044","line":250,"updated":"2026-08-17 14:32:25.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"62143a72c3109810be268c7c0ff84db01e49387a"}],"tools/version-check.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b6106a6e098396b31eda50a7eb50ca67e06e6d2c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            # Use the stable branch for requirements."},{"line_number":170,"context_line":"            latest_tag \u003d \"stable-{}\".format(conf.openstack_release)"},{"line_number":171,"context_line":"            tarball_base \u003d project_name"},{"line_number":172,"context_line":"            if project_name in RENAME_PROJECTS:"},{"line_number":173,"context_line":"                tarball_base \u003d RENAME_PROJECTS[project_name]"},{"line_number":174,"context_line":"        elif project_name in projects:"},{"line_number":175,"context_line":"            latest_tag \u003d projects[project_name][\u0027latest_version\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"c99aed8a_5e3344e3","line":172,"updated":"2026-08-17 07:20:50.000000000","message":"pep8: F821 undefined name \u0027RENAME_PROJECTS\u0027","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b6106a6e098396b31eda50a7eb50ca67e06e6d2c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            latest_tag \u003d \"stable-{}\".format(conf.openstack_release)"},{"line_number":171,"context_line":"            tarball_base \u003d project_name"},{"line_number":172,"context_line":"            if project_name in RENAME_PROJECTS:"},{"line_number":173,"context_line":"                tarball_base \u003d RENAME_PROJECTS[project_name]"},{"line_number":174,"context_line":"        elif project_name in projects:"},{"line_number":175,"context_line":"            latest_tag \u003d projects[project_name][\u0027latest_version\u0027]"},{"line_number":176,"context_line":"            tarball_base \u003d projects[project_name][\u0027tarball_base\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"174275d4_8069c05f","line":173,"updated":"2026-08-17 07:20:50.000000000","message":"pep8: F821 undefined name \u0027RENAME_PROJECTS\u0027","commit_id":"4082e6c27d992e73212257c6d5d276bcca80c6e7"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3dd4d5d5c1c9148ba9717dae55138aa070ef1b7b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            # Use the stable branch for requirements."},{"line_number":170,"context_line":"            latest_tag \u003d \"stable-{}\".format(conf.openstack_release)"},{"line_number":171,"context_line":"            tarball_base \u003d project_name"},{"line_number":172,"context_line":"            if project_name in RENAME_PROJECTS:"},{"line_number":173,"context_line":"                tarball_base \u003d RENAME_PROJECTS[project_name]"},{"line_number":174,"context_line":"        elif project_name in projects:"},{"line_number":175,"context_line":"            latest_tag \u003d projects[project_name][\u0027latest_version\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"93d75614_e881f4ed","line":172,"updated":"2026-08-17 12:51:21.000000000","message":"pep8: F821 undefined name \u0027RENAME_PROJECTS\u0027","commit_id":"8da083e735b8ecfa2c302936cef78364e045f53c"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3dd4d5d5c1c9148ba9717dae55138aa070ef1b7b","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            latest_tag \u003d \"stable-{}\".format(conf.openstack_release)"},{"line_number":171,"context_line":"            tarball_base \u003d project_name"},{"line_number":172,"context_line":"            if project_name in RENAME_PROJECTS:"},{"line_number":173,"context_line":"                tarball_base \u003d RENAME_PROJECTS[project_name]"},{"line_number":174,"context_line":"        elif project_name in projects:"},{"line_number":175,"context_line":"            latest_tag \u003d projects[project_name][\u0027latest_version\u0027]"},{"line_number":176,"context_line":"            tarball_base \u003d projects[project_name][\u0027tarball_base\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"691dfa15_ca787206","line":173,"updated":"2026-08-17 12:51:21.000000000","message":"pep8: F821 undefined name \u0027RENAME_PROJECTS\u0027","commit_id":"8da083e735b8ecfa2c302936cef78364e045f53c"}]}
