)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b2bc76f8f2f8ee2d0be7f6731daac69a2e7e4238","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Add distributed coordination for freezer-scheduler clustering"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Schedulers sharing a client_id and a tooz backend now split job ownership via a consistent hash ring, guard each run with a per-job lock, and fail safe when the backend is unreachable. A firing that loses its lock is retried with exponential backoff so one-shot jobs are not lost. Opt-in via [coordination] backend_url."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Co-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e"},{"line_number":12,"context_line":"Change-Id: I5ca9d9ef7aafdfd9d8ef87b8d6944e179075431f"},{"line_number":13,"context_line":"Signed-off-by: Alicja Filipek \u003calicja.filipek@cleura.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fcb608f_50cc9d7e","line":10,"updated":"2026-07-24 08:25:55.000000000","message":"Please add `Implements: blueprint scheduler-coordination`","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"change_message_id":"5adf2440df234667dff8a5b76ab56bd43ad6f381","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Add distributed coordination for freezer-scheduler clustering"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Schedulers sharing a client_id and a tooz backend now split job ownership via a consistent hash ring, guard each run with a per-job lock, and fail safe when the backend is unreachable. A firing that loses its lock is retried with exponential backoff so one-shot jobs are not lost. Opt-in via [coordination] backend_url."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Co-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e"},{"line_number":12,"context_line":"Change-Id: I5ca9d9ef7aafdfd9d8ef87b8d6944e179075431f"},{"line_number":13,"context_line":"Signed-off-by: Alicja Filipek \u003calicja.filipek@cleura.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"c7c42bfb_05289420","line":10,"in_reply_to":"9fcb608f_50cc9d7e","updated":"2026-07-24 12:49:17.000000000","message":"Ok, added.","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"067d57714c801be0b21388465df58d07bbc83943","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add distributed coordination for freezer-scheduler clustering"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Schedulers sharing a client_id and a tooz backend now split job ownership via a consistent hash ring, guard each run with a per-job lock, and fail safe when the backend is unreachable. A firing that loses its lock is retried with exponential backoff so one-shot jobs are not lost. Opt-in via [coordination] backend_url."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Co-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e"},{"line_number":12,"context_line":"Change-Id: I5ca9d9ef7aafdfd9d8ef87b8d6944e179075431f"},{"line_number":13,"context_line":"Signed-off-by: Alicja Filipek \u003calicja.filipek@cleura.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"11a91b58_5e4f9165","line":10,"in_reply_to":"c7c42bfb_05289420","updated":"2026-07-24 14:07:35.000000000","message":"Done","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b2bc76f8f2f8ee2d0be7f6731daac69a2e7e4238","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0208d496_088928cf","updated":"2026-07-24 08:25:55.000000000","message":"Code looks good overall, just some comments","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"14bd006bd9a2fc43bf5635a7695c4f5187605f12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"828337cb_1a516e39","updated":"2026-07-26 09:28:29.000000000","message":"I have pushed https://review.opendev.org/c/openstack/openstack-ansible-os_freezer/+/998718 - will wait for the result.","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"5b9ef0fff8048c3366e0320c2985bf55b484c568","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2c2f34de_62642037","updated":"2026-07-24 14:08:08.000000000","message":"I wanna to prepare OSA patch and test it with zookeeper in there, so see the result/differnece.","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"},{"author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"change_message_id":"03a99bbe00e4aae57d81bbfbb8566ceca0a1bc27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ad720885_5b843abd","in_reply_to":"828337cb_1a516e39","updated":"2026-07-27 08:50:29.000000000","message":"The pipeline has timed out, I commented \u0027recheck\u0027 to rerun it.","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"462160a1eb804768edb4b356796eb614c90248e0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fc735dbf_25b92f4a","in_reply_to":"ad720885_5b843abd","updated":"2026-07-28 07:56:12.000000000","message":"I was not after details, but more to see if it actually works/starts.\n\n\nSo the confusing part so far, is that I don\u0027t see in logs any mentioning of coordination.\n\nI would expect to see message logged like \"Coordination started\", right?\n\nBut it is not here:\nhttps://zuul.opendev.org/t/openstack/build/24aa1cd9994246339bd9c42856e51693/log/logs/openstack/aio1-utility-container-35774946/freezer-scheduler.service.journal-15-12-07.log.txt\n\nnor here:\nhttps://zuul.opendev.org/t/openstack/build/24aa1cd9994246339bd9c42856e51693/log/logs/openstack/aio1-freezer-scheduler-container-fa863b83/freezer-scheduler.service.journal-15-12-07.log.txt\n\nWhile it is configured as far as I am concerned:\nhttps://zuul.opendev.org/t/openstack/build/24aa1cd9994246339bd9c42856e51693/log/logs/etc/openstack/aio1-freezer-scheduler-container-fa863b83/freezer/scheduler.conf.txt#13-14","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"5dd858a2884c134db2e01cabbd66796374edde73","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f4d5714b_9236c023","in_reply_to":"f39f7f3b_56910226","updated":"2026-07-28 08:40:48.000000000","message":"Ok, it\u0027s not problem with code, it\u0027s https://review.opendev.org/c/openstack/openstack-ansible/+/995111 was never merged...","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"50f95db1c338c06b1346c0256236fbc22d472ee9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f02fd2af_d43420f5","in_reply_to":"f4d5714b_9236c023","updated":"2026-07-28 13:02:44.000000000","message":"Ok, now it\u0027s better.\n\nI think we might need to \"adjust\" tempest tests for compatibility, as it seems they\u0027re unhappy once running outside of devstack env.","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"0b0d8c4fb106532e8777d40c351a251bf19a63c8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f39f7f3b_56910226","in_reply_to":"fc735dbf_25b92f4a","updated":"2026-07-28 07:57:23.000000000","message":"And then I\u0027d expect to see also `Scheduler coordination enabled for cluster`, which also not there.","commit_id":"42b608c4744f5cfa7ebe93bcbb5dda836249c2b2"}],"doc/source/admin/scheduler-coordination.rst":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b2bc76f8f2f8ee2d0be7f6731daac69a2e7e4238","unresolved":true,"context_lines":[{"line_number":93,"context_line":"Clustered mode is opt-in: if ``backend_url`` is unset the scheduler"},{"line_number":94,"context_line":"runs standalone exactly as before. Note that without a coordination"},{"line_number":95,"context_line":"backend, schedulers sharing a ``client_id`` will duplicate job runs."},{"line_number":96,"context_line":"Clustered mode is not supported in Windows service mode."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configuration options"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e6c2be99_8b575179","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":56},"updated":"2026-07-24 08:25:55.000000000","message":"let\u0027s highlight that with `.. warning::`?","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"067d57714c801be0b21388465df58d07bbc83943","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Clustered mode is opt-in: if ``backend_url`` is unset the scheduler"},{"line_number":94,"context_line":"runs standalone exactly as before. Note that without a coordination"},{"line_number":95,"context_line":"backend, schedulers sharing a ``client_id`` will duplicate job runs."},{"line_number":96,"context_line":"Clustered mode is not supported in Windows service mode."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configuration options"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a9e3f409_d4d527f9","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":56},"in_reply_to":"e468d1b9_d8b55f55","updated":"2026-07-24 14:07:35.000000000","message":"Done","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"change_message_id":"5adf2440df234667dff8a5b76ab56bd43ad6f381","unresolved":true,"context_lines":[{"line_number":93,"context_line":"Clustered mode is opt-in: if ``backend_url`` is unset the scheduler"},{"line_number":94,"context_line":"runs standalone exactly as before. Note that without a coordination"},{"line_number":95,"context_line":"backend, schedulers sharing a ``client_id`` will duplicate job runs."},{"line_number":96,"context_line":"Clustered mode is not supported in Windows service mode."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configuration options"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e468d1b9_d8b55f55","line":96,"range":{"start_line":96,"start_character":0,"end_line":96,"end_character":56},"in_reply_to":"e6c2be99_8b575179","updated":"2026-07-24 12:49:17.000000000","message":"ok, I added a warning for both Windows not being supported and for dupplicated job runs in case of the same client_id without coordnation.","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b2bc76f8f2f8ee2d0be7f6731daac69a2e7e4238","unresolved":true,"context_lines":[{"line_number":95,"context_line":"backend, schedulers sharing a ``client_id`` will duplicate job runs."},{"line_number":96,"context_line":"Clustered mode is not supported in Windows service mode."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configuration options"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"``[coordination] backend_url``"},{"line_number":102,"context_line":"    URL of the tooz coordination backend, e.g. ``redis://host:6379``,"},{"line_number":103,"context_line":"    ``etcd3+http://host:2379`` or ``zookeeper://host:2181``. Unset"},{"line_number":104,"context_line":"    (default) disables coordination. Membership heartbeats and the"},{"line_number":105,"context_line":"    session timeout are handled by tooz itself and can be tuned through"},{"line_number":106,"context_line":"    URL options, e.g. ``redis://host:6379?timeout\u003d30``."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. _tooz: https://docs.openstack.org/tooz/latest/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a37b59a8_0491bff4","line":106,"range":{"start_line":98,"start_character":0,"end_line":106,"end_character":55},"updated":"2026-07-24 08:25:55.000000000","message":"I think this section is not needed, as it\u0027s already present in config reference, which is generated:\nhttps://e22560e9ec333cbbf1cd-ba57879ebaab420ef22174b0b3073888.ssl.cf5.rackcdn.com/openstack/5a6747c2c7a747caa09fd7b99dba5346/docs/admin/config-reference.html#coordination","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"change_message_id":"5adf2440df234667dff8a5b76ab56bd43ad6f381","unresolved":true,"context_lines":[{"line_number":95,"context_line":"backend, schedulers sharing a ``client_id`` will duplicate job runs."},{"line_number":96,"context_line":"Clustered mode is not supported in Windows service mode."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configuration options"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"``[coordination] backend_url``"},{"line_number":102,"context_line":"    URL of the tooz coordination backend, e.g. ``redis://host:6379``,"},{"line_number":103,"context_line":"    ``etcd3+http://host:2379`` or ``zookeeper://host:2181``. Unset"},{"line_number":104,"context_line":"    (default) disables coordination. Membership heartbeats and the"},{"line_number":105,"context_line":"    session timeout are handled by tooz itself and can be tuned through"},{"line_number":106,"context_line":"    URL options, e.g. ``redis://host:6379?timeout\u003d30``."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. _tooz: https://docs.openstack.org/tooz/latest/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dba2ec72_a3776e8c","line":106,"range":{"start_line":98,"start_character":0,"end_line":106,"end_character":55},"in_reply_to":"a37b59a8_0491bff4","updated":"2026-07-24 12:49:17.000000000","message":"right, removing.","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"067d57714c801be0b21388465df58d07bbc83943","unresolved":false,"context_lines":[{"line_number":95,"context_line":"backend, schedulers sharing a ``client_id`` will duplicate job runs."},{"line_number":96,"context_line":"Clustered mode is not supported in Windows service mode."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Configuration options"},{"line_number":99,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"``[coordination] backend_url``"},{"line_number":102,"context_line":"    URL of the tooz coordination backend, e.g. ``redis://host:6379``,"},{"line_number":103,"context_line":"    ``etcd3+http://host:2379`` or ``zookeeper://host:2181``. Unset"},{"line_number":104,"context_line":"    (default) disables coordination. Membership heartbeats and the"},{"line_number":105,"context_line":"    session timeout are handled by tooz itself and can be tuned through"},{"line_number":106,"context_line":"    URL options, e.g. ``redis://host:6379?timeout\u003d30``."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":".. _tooz: https://docs.openstack.org/tooz/latest/"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3236c733_173acae9","line":106,"range":{"start_line":98,"start_character":0,"end_line":106,"end_character":55},"in_reply_to":"dba2ec72_a3776e8c","updated":"2026-07-24 14:07:35.000000000","message":"Done","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"}],"freezer/scheduler/arguments.py":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b2bc76f8f2f8ee2d0be7f6731daac69a2e7e4238","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                        \u0027\"?timeout\u003d30\"). When unset the scheduler runs \u0027"},{"line_number":173,"context_line":"                        \u0027standalone (no coordination) as before.\u0027),"},{"line_number":174,"context_line":"    ]"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    return coordination"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a195ee44_9e282f3c","line":175,"updated":"2026-07-24 08:25:55.000000000","message":"do we also want to add `heartbeat_interval`? It was mentioned in spec:\nhttps://opendev.org/openstack/freezer-specs/src/branch/master/specs/2026.2/approved/scheduler-coordination.rst#other-deployer-impact","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"067d57714c801be0b21388465df58d07bbc83943","unresolved":false,"context_lines":[{"line_number":172,"context_line":"                        \u0027\"?timeout\u003d30\"). When unset the scheduler runs \u0027"},{"line_number":173,"context_line":"                        \u0027standalone (no coordination) as before.\u0027),"},{"line_number":174,"context_line":"    ]"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    return coordination"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"40f86a79_6af74a88","line":175,"in_reply_to":"19d2c490_7d245cd2","updated":"2026-07-24 14:07:35.000000000","message":"hm, ok... I wonder why it\u0027s also a separate option in bunch of other projects...\nbut ok","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"change_message_id":"5adf2440df234667dff8a5b76ab56bd43ad6f381","unresolved":true,"context_lines":[{"line_number":172,"context_line":"                        \u0027\"?timeout\u003d30\"). When unset the scheduler runs \u0027"},{"line_number":173,"context_line":"                        \u0027standalone (no coordination) as before.\u0027),"},{"line_number":174,"context_line":"    ]"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    return coordination"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"19d2c490_7d245cd2","line":175,"in_reply_to":"a195ee44_9e282f3c","updated":"2026-07-24 12:49:17.000000000","message":"The heartbit interval is derived from the timeout, that is already adjustable with tooz backend url (e.g. redis://host:6379?timeout\u003d30). I would keep it in tooz as it is already implemented. I did not know it is in tooz when I wrote specs.","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"}],"freezer/tests/unit/scheduler/test_coordination.py":[{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b2bc76f8f2f8ee2d0be7f6731daac69a2e7e4238","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"d22c9c62_3af2c222","line":1,"updated":"2026-07-24 08:25:55.000000000","message":"`# Copyright 2026 Cleura AB`","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":39044,"name":"Alicja Filipek","display_name":"alaf01","email":"alicja.filipek@cleura.com","username":"alaf01"},"change_message_id":"5adf2440df234667dff8a5b76ab56bd43ad6f381","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"e1af9d73_66015b50","line":1,"in_reply_to":"d22c9c62_3af2c222","updated":"2026-07-24 12:49:17.000000000","message":"sure, added","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"067d57714c801be0b21388465df58d07bbc83943","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"0942c248_f5118f51","line":1,"in_reply_to":"e1af9d73_66015b50","updated":"2026-07-24 14:07:35.000000000","message":"Done","commit_id":"8c49815b7f7ca8be4b0067146acc3a04f1dcb5f6"}]}
