)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"83476bafcdf681362dfabfb25b1b5b6c6e71ff4b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3e3215a5_bf2863be","updated":"2026-07-31 19:11:19.000000000","message":"Please do not merge this until Ironic cores have reviewed it. I am happy to renumber if needed.","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7f1f9893a8b56f429001a4cc3d1a7c2502269f9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0e62c3a8_e21c5707","updated":"2026-08-03 20:44:36.000000000","message":"LGTM, lining it up\nthanks @jay@jvf.cc","commit_id":"79034e0681f0035614c6d47cd0cb2a98debf36b2"}],"security-notes/OSSN-0103":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f987c1ea06ef79b9e32ef1fe81e516ca6ecf1769","unresolved":true,"context_lines":[{"line_number":8,"context_line":"could be reconfigured or directed to a different Ironic API service."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"### Affected Services / Software ###"},{"line_number":11,"context_line":"- ironic-python-agent: \u003c\u003d10.2.4, \u003e11.2.0 \u003c\u003d11.2.1, \u003e11.5.0 \u003c\u003d11.5.1, \u003e11.6.0 \u003c\u003d11.6.1"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"### Discussion ###"},{"line_number":14,"context_line":"When IPA is booted, the first thing it does is look for a valid"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"68826577_4d5cf56d","line":11,"range":{"start_line":11,"start_character":43,"end_line":11,"end_character":85},"updated":"2026-07-31 20:02:39.000000000","message":"version string is confusing; \"\u003c\u003d10.2.4\" needs a lower bound, 1.0.0?\nalso, there are no fixes for stable/\u003crelease\u003e branches below..","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"aeb7c7080c8240a0effbae329fcfe2dfcada82ed","unresolved":false,"context_lines":[{"line_number":8,"context_line":"could be reconfigured or directed to a different Ironic API service."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"### Affected Services / Software ###"},{"line_number":11,"context_line":"- ironic-python-agent: \u003c\u003d10.2.4, \u003e11.2.0 \u003c\u003d11.2.1, \u003e11.5.0 \u003c\u003d11.5.1, \u003e11.6.0 \u003c\u003d11.6.1"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"### Discussion ###"},{"line_number":14,"context_line":"When IPA is booted, the first thing it does is look for a valid"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"005615e5_1575564b","line":11,"range":{"start_line":11,"start_character":43,"end_line":11,"end_character":85},"in_reply_to":"68826577_4d5cf56d","updated":"2026-08-03 20:09:59.000000000","message":"Done","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f987c1ea06ef79b9e32ef1fe81e516ca6ecf1769","unresolved":true,"context_lines":[{"line_number":16,"context_line":"The mDNS fallback would, in situations where IPA had no API url"},{"line_number":17,"context_line":"configured, use mDNS lookups to configure IPA, including the endpoint"},{"line_number":18,"context_line":"of the Ironic API service. This is typically only used in rare cases"},{"line_number":19,"context_line":"for bootstrapping clusters with minimal infratstructure using virtual"},{"line_number":20,"context_line":"media."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Ironic\u0027s default configuration always sends a valid API url. The"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"64148bb8_96ac9851","line":19,"range":{"start_line":19,"start_character":40,"end_line":19,"end_character":55},"updated":"2026-07-31 20:02:39.000000000","message":"typo","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"aeb7c7080c8240a0effbae329fcfe2dfcada82ed","unresolved":false,"context_lines":[{"line_number":16,"context_line":"The mDNS fallback would, in situations where IPA had no API url"},{"line_number":17,"context_line":"configured, use mDNS lookups to configure IPA, including the endpoint"},{"line_number":18,"context_line":"of the Ironic API service. This is typically only used in rare cases"},{"line_number":19,"context_line":"for bootstrapping clusters with minimal infratstructure using virtual"},{"line_number":20,"context_line":"media."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Ironic\u0027s default configuration always sends a valid API url. The"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"d3c950fc_ee071a95","line":19,"range":{"start_line":19,"start_character":40,"end_line":19,"end_character":55},"in_reply_to":"64148bb8_96ac9851","updated":"2026-08-03 20:09:59.000000000","message":"Done","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4b553a2fef0d6ea9e2ab4c079be9ee378e11aba5","unresolved":true,"context_lines":[{"line_number":16,"context_line":"The mDNS fallback would, in situations where IPA had no API url"},{"line_number":17,"context_line":"configured, use mDNS lookups to configure IPA, including the endpoint"},{"line_number":18,"context_line":"of the Ironic API service. This is typically only used in rare cases"},{"line_number":19,"context_line":"for bootstrapping clusters with minimal infratstructure using virtual"},{"line_number":20,"context_line":"media."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Ironic\u0027s default configuration always sends a valid API url. The"},{"line_number":23,"context_line":"current development branch has been updated to always require an"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a6a7f34_b1a4025b","line":20,"range":{"start_line":19,"start_character":61,"end_line":20,"end_character":6},"updated":"2026-07-31 19:38:06.000000000","message":"s/virtual media/manual machine activation with thumb drives or virtual media./","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"aeb7c7080c8240a0effbae329fcfe2dfcada82ed","unresolved":false,"context_lines":[{"line_number":16,"context_line":"The mDNS fallback would, in situations where IPA had no API url"},{"line_number":17,"context_line":"configured, use mDNS lookups to configure IPA, including the endpoint"},{"line_number":18,"context_line":"of the Ironic API service. This is typically only used in rare cases"},{"line_number":19,"context_line":"for bootstrapping clusters with minimal infratstructure using virtual"},{"line_number":20,"context_line":"media."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Ironic\u0027s default configuration always sends a valid API url. The"},{"line_number":23,"context_line":"current development branch has been updated to always require an"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"ac86878b_2bed9464","line":20,"range":{"start_line":19,"start_character":61,"end_line":20,"end_character":6},"in_reply_to":"3a6a7f34_b1a4025b","updated":"2026-08-03 20:09:59.000000000","message":"Done","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f987c1ea06ef79b9e32ef1fe81e516ca6ecf1769","unresolved":true,"context_lines":[{"line_number":35,"context_line":"  fallback in their virtual media images."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"#### Patches ####"},{"line_number":38,"context_line":"The following patches are backwards incompatible and were not merged"},{"line_number":39,"context_line":"into stable branches. Operators are welcome to backport them manually"},{"line_number":40,"context_line":"if they feel it improves their security standing and they do not"},{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development): "},{"line_number":44,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997637"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"12b110f9_0b42f5a4","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":18},"updated":"2026-07-31 20:02:39.000000000","message":"ah! so, the fixed version above should only be branches/tags made from master beyond these merged changes..","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b5eee17353320df9791a0e68709ba684e62a423f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"  fallback in their virtual media images."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"#### Patches ####"},{"line_number":38,"context_line":"The following patches are backwards incompatible and were not merged"},{"line_number":39,"context_line":"into stable branches. Operators are welcome to backport them manually"},{"line_number":40,"context_line":"if they feel it improves their security standing and they do not"},{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development): "},{"line_number":44,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997637"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"1a643ebd_2f2d0e75","line":41,"range":{"start_line":38,"start_character":0,"end_line":41,"end_character":18},"in_reply_to":"12b110f9_0b42f5a4","updated":"2026-08-03 20:10:26.000000000","message":"Done","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"4b553a2fef0d6ea9e2ab4c079be9ee378e11aba5","unresolved":false,"context_lines":[{"line_number":40,"context_line":"if they feel it improves their security standing and they do not"},{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development): "},{"line_number":44,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997637"},{"line_number":45,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997638"},{"line_number":46,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/999337"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"a67867a5_7fedb931","line":43,"updated":"2026-07-31 19:38:06.000000000","message":"nit: whitespace","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f987c1ea06ef79b9e32ef1fe81e516ca6ecf1769","unresolved":true,"context_lines":[{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development): "},{"line_number":44,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997637"},{"line_number":45,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997638"},{"line_number":46,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/999337"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"### Credits ###"},{"line_number":49,"context_line":"- Dmitry Tantsur, Red Hat (Metal3.io Security Team)"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"fcbb64b7_a9ff3a0f","line":46,"range":{"start_line":44,"start_character":0,"end_line":46,"end_character":69},"updated":"2026-07-31 20:02:39.000000000","message":"nit: short URLs please","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b5eee17353320df9791a0e68709ba684e62a423f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development): "},{"line_number":44,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997637"},{"line_number":45,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/997638"},{"line_number":46,"context_line":"- https://review.opendev.org/c/openstack/ironic-python-agent/+/999337"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"### Credits ###"},{"line_number":49,"context_line":"- Dmitry Tantsur, Red Hat (Metal3.io Security Team)"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"c8f5a48d_c5056fc1","line":46,"range":{"start_line":44,"start_character":0,"end_line":46,"end_character":69},"in_reply_to":"fcbb64b7_a9ff3a0f","updated":"2026-08-03 20:10:26.000000000","message":"Done","commit_id":"aff974ebd86acfa0241d19ee8a447e0d26958784"}],"security-notes/OSSN-0104":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"e87ba1847f2bb930cb9a5245d6163f928accde95","unresolved":true,"context_lines":[{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development):"},{"line_number":44,"context_line":"- https://review.opendev.org/q/997637"},{"line_number":45,"context_line":"- https://review.opendev.org/q/997638"},{"line_number":46,"context_line":"- https://review.opendev.org/q/999337"},{"line_number":47,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"6cedd6fe_6c0d1e3f","line":44,"updated":"2026-08-03 20:22:29.000000000","message":"Nit: The format of these URLs seems a little weird. I can\u0027t find any prior instances of us using the query (\"q\") path for numeric IDs, usually you\u0027d just do e.g. https://review.opendev.org/997638 for a \"short\" change URL.","commit_id":"ac2797c2e7008a0eb323ee9ce5c1e75b38c746d5"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"3e0fe6245d5a02fc2b54c249c1196145065875df","unresolved":false,"context_lines":[{"line_number":41,"context_line":"use mDNS fallback."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"2026.2/hibiscus (development):"},{"line_number":44,"context_line":"- https://review.opendev.org/q/997637"},{"line_number":45,"context_line":"- https://review.opendev.org/q/997638"},{"line_number":46,"context_line":"- https://review.opendev.org/q/999337"},{"line_number":47,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"316d638a_84d33dc4","line":44,"in_reply_to":"6cedd6fe_6c0d1e3f","updated":"2026-08-03 20:42:30.000000000","message":"Done","commit_id":"ac2797c2e7008a0eb323ee9ce5c1e75b38c746d5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"40bc46399cdb38fb6c6d7cf2c62ba2bb480b51b5","unresolved":true,"context_lines":[{"line_number":8,"context_line":"could be reconfigured or directed to a different Ironic API service."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"### Affected Services / Software ###"},{"line_number":11,"context_line":"- ironic-python-agent: 1.0.0 \u003c\u003d11.6.1"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"### Discussion ###"},{"line_number":14,"context_line":"When IPA is booted, the first thing it does is look for a valid"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"c385ed7f_b5447e4e","line":11,"range":{"start_line":11,"start_character":23,"end_line":11,"end_character":28},"updated":"2026-08-03 20:37:33.000000000","message":"The feature appeared 3.7.0 FWIW.","commit_id":"79034e0681f0035614c6d47cd0cb2a98debf36b2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"3e0fe6245d5a02fc2b54c249c1196145065875df","unresolved":false,"context_lines":[{"line_number":8,"context_line":"could be reconfigured or directed to a different Ironic API service."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"### Affected Services / Software ###"},{"line_number":11,"context_line":"- ironic-python-agent: 1.0.0 \u003c\u003d11.6.1"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"### Discussion ###"},{"line_number":14,"context_line":"When IPA is booted, the first thing it does is look for a valid"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"37d6484d_9db07780","line":11,"range":{"start_line":11,"start_character":23,"end_line":11,"end_character":28},"in_reply_to":"c385ed7f_b5447e4e","updated":"2026-08-03 20:42:30.000000000","message":"Done","commit_id":"79034e0681f0035614c6d47cd0cb2a98debf36b2"}]}
