)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"73fc3983058b29846100a7f6208ca9244002f8cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"76040e5d_beca01d3","updated":"2026-01-12 13:58:01.000000000","message":"https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_eaf/openstack/eaf693cdace34e948d24d3d5da936313/kolla/version_report.txt\n\nOMPONENT                                | CURR VER   | LATEST          | ARCH    | NEW SHA256\n--------------------------------------------------------------------------------------------------------------\netcd                                     | 3.6.5      | 3.6.7           | amd64   | cf8af880c5a01ee5363cefa14a3e0cb7e5308dcf4ed17a6973099c9a7aee5a9a\netcd                                     | 3.6.5      | 3.6.7           | arm64   | ef5fc443cf7cc5b82738f3c28363704896551900af90a6d622cae740b5644270\nletsencrypt-lego                         | v4.27.0    | 4.31.0          | amd64   | Not Found\nletsencrypt-lego                         | v4.27.0    | 4.31.0          | arm64   | Not Found\nprometheus-alertmanager                  | 0.28.1     | 0.30.0          | amd64   | 86fd95034e3e17094d6951118c54b396200be22a1c16af787e1f7129ebce8f1f\nprometheus-alertmanager                  | 0.28.1     | 0.30.0          | arm64   | 061a5ab3998fb8af75192980a559c7bfa3892da55098da839d7a79d94abe0b61","commit_id":"fb58c221fadf240e2f6a3ca0f18d20dc657932d5"},{"author":{"_account_id":28048,"name":"Will Szumski","email":"will@stackhpc.com","username":"jovial"},"change_message_id":"bce1891e9b2291da873263bcba4626d8cfdc7a11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6805d690_85c588ab","updated":"2026-03-04 14:11:23.000000000","message":"recheck: logs are missing. This does look useful. I\u0027m curious.. why didn\u0027t it fail when it found new releases?","commit_id":"fb58c221fadf240e2f6a3ca0f18d20dc657932d5"},{"author":{"_account_id":37306,"name":"Piotr Milewski","display_name":"Piotr Milewski","email":"vurmil@gmail.com","username":"vurmil"},"change_message_id":"80d325fda13ea83d58759d7e1d3cd76d6b789c59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"90d4b296_3cc3921a","in_reply_to":"6805d690_85c588ab","updated":"2026-03-08 06:36:57.000000000","message":"I was thinking more that this could be expanded further by one of the maintainers. The idea would be to add the required keys and integrate it with the scheduler so it runs periodically (for example once a week or once a month).\n\nThen, if a new release is detected, it could automatically create a commit with the update.","commit_id":"fb58c221fadf240e2f6a3ca0f18d20dc657932d5"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6b72cccb405c612512de23b21fa5f830488f9d2e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"5e19e835_67a3a33c","updated":"2026-06-25 14:31:16.000000000","message":"Do we need to ignore Prometheus (prometheus-server) to stick to LTS releases?","commit_id":"b44d46aa93b51b34bcc270a32c31f70ee139aa88"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"6dd9f93d2ee2a5c4455f35ddc203f67896f5822e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"5014566e_10ba905f","in_reply_to":"5e19e835_67a3a33c","updated":"2026-06-25 14:45:33.000000000","message":"Fixed by tracking lts_branch defined in sources.py","commit_id":"b44d46aa93b51b34bcc270a32c31f70ee139aa88"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"27f44e73e931a4678aa179390d91d60ebdb4251c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b6882d22_db17cb53","updated":"2026-07-20 11:58:14.000000000","message":"recheck ironic build fixed","commit_id":"87dc3f7718e4a08768e420bfc47706893db21edb"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d68a953c11b81ddb12e8d8ba6161f8fc669078e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"fada7d35_d6f54801","updated":"2026-07-23 06:14:20.000000000","message":"This is CI only, I\u0027m done waiting since June.","commit_id":"c7b75c5c2c6b0575d54cf97096cadf3502c18873"}],"tools/check_sources.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7fa18b61082258aa960ca3b1fd58f450053338ed","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":"    url \u003d f\"https://api.github.com/repos/{user}/{repo}/releases/latest\""},{"line_number":87,"context_line":"    if lts_branch:"},{"line_number":88,"context_line":"        url \u003d f\"https://api.github.com/repos/{user}/{repo}/releases?per_page\u003d100\""},{"line_number":89,"context_line":"    try:"},{"line_number":90,"context_line":"        response \u003d requests.get(url, headers\u003dgithub_headers(), timeout\u003d10)"},{"line_number":91,"context_line":"        if response.status_code not in (200, 404):"}],"source_content_type":"text/x-python","patch_set":13,"id":"0d6f7656_f8d79682","line":88,"updated":"2026-06-25 15:45:07.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"daa89e20f45af533f44b08021412158aa81499d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7fa18b61082258aa960ca3b1fd58f450053338ed","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        hashes \u003d {}"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        # Try reading sha256 from the digest field on each asset directly."},{"line_number":136,"context_line":"        # Skip supplementary files (sbom, sig, etc.) — we want the primary artifact."},{"line_number":137,"context_line":"        skip_suffixes \u003d (\u0027.sbom.json\u0027, \u0027.sig\u0027, \u0027.pem\u0027, \u0027.crt\u0027)"},{"line_number":138,"context_line":"        for asset in data[\u0027assets\u0027]:"},{"line_number":139,"context_line":"            digest \u003d asset.get(\u0027digest\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"a6285a03_55f223b3","line":136,"updated":"2026-06-25 15:45:07.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"daa89e20f45af533f44b08021412158aa81499d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7fa18b61082258aa960ca3b1fd58f450053338ed","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                continue"},{"line_number":144,"context_line":"            sha \u003d digest.split(\u0027:\u0027, 1)[1]"},{"line_number":145,"context_line":"            for kolla_arch, github_arch in arch_map.items():"},{"line_number":146,"context_line":"                # Match flexibly: split on - or _ and check each part is present."},{"line_number":147,"context_line":"                # This handles both linux-amd64 and linux_amd64 naming styles."},{"line_number":148,"context_line":"                parts \u003d re.split(r\u0027[-_]\u0027, github_arch)"},{"line_number":149,"context_line":"                if all(p in asset[\u0027name\u0027] for p in parts):"}],"source_content_type":"text/x-python","patch_set":13,"id":"ebd14c02_99ba2c14","line":146,"updated":"2026-06-25 15:45:07.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"daa89e20f45af533f44b08021412158aa81499d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7fa18b61082258aa960ca3b1fd58f450053338ed","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    lines \u003d [\"---\", \"upgrade:\"]"},{"line_number":254,"context_line":"    for name, old_v, new_v in changes:"},{"line_number":255,"context_line":"        lines.append(f\"  - |\")"},{"line_number":256,"context_line":"        lines.append(f\"    ``{name}`` has been updated from \""},{"line_number":257,"context_line":"                     f\"``{old_v}`` to ``{new_v}``.\")"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"cd587e93_45fa5583","line":255,"updated":"2026-06-25 15:45:07.000000000","message":"pep8: F541 f-string is missing placeholders","commit_id":"daa89e20f45af533f44b08021412158aa81499d8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"7fa18b61082258aa960ca3b1fd58f450053338ed","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                            (name, current_v, latest_v))"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    if update and version_changes:"},{"line_number":327,"context_line":"        create_releasenote(version_changes)"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"c3e658eb_2b1e8c77","line":326,"updated":"2026-06-25 15:45:07.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"daa89e20f45af533f44b08021412158aa81499d8"}],"zuul.d/base.yaml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"6b72cccb405c612512de23b21fa5f830488f9d2e","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    parent: kolla-base"},{"line_number":50,"context_line":"    vars:"},{"line_number":51,"context_line":"      use_infra_wheels_mirror: false"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"03b606ce_657f387f","line":52,"updated":"2026-06-25 14:31:16.000000000","message":"Extra line break not required","commit_id":"b44d46aa93b51b34bcc270a32c31f70ee139aa88"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"2833ee70d2bb28cb18e779658010acc869807c7f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    parent: kolla-base"},{"line_number":50,"context_line":"    vars:"},{"line_number":51,"context_line":"      use_infra_wheels_mirror: false"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"459d09ad_af76576a","line":52,"in_reply_to":"03b606ce_657f387f","updated":"2026-06-25 14:50:04.000000000","message":"Done","commit_id":"b44d46aa93b51b34bcc270a32c31f70ee139aa88"}]}
