)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"0025fab995d6901454da67fadb54bec02f9eca67","unresolved":false,"context_lines":[{"line_number":9,"context_line":"The POST endpoint for creating scopes was failing with an IntegrityError"},{"line_number":10,"context_line":"because last_processed_timestamp was not accepted as an input parameter"},{"line_number":11,"context_line":"and was passed as None to the database, which requires a NOT NULL value."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change adds last_processed_timestamp as a required parameter in the"},{"line_number":14,"context_line":"POST input schema and ensures proper UTC timezone conversion in the"},{"line_number":15,"context_line":"create_scope method, consistent with how set_last_processed_timestamp"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a1bafaf_45bb04d7","line":12,"updated":"2026-02-03 09:14:49.000000000","message":"Added test coverage for the POST endpoint in v2-scope-state.yaml. The new tests verify:\n1. Creating a scope with the required last_processed_timestamp works correctly\n2. Creating a scope without last_processed_timestamp now properly fails with 400","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"ad37ce5478f6e0a6e2bd02b0a6068c2daa85f5b8","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the Scope API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The POST endpoint for creating scopes was failing with an IntegrityError"},{"line_number":10,"context_line":"because last_processed_timestamp was not accepted as an input parameter"},{"line_number":11,"context_line":"and was passed as None to the database, which requires a NOT NULL value."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change adds last_processed_timestamp as a required parameter in the"},{"line_number":14,"context_line":"POST input schema and ensures proper UTC timezone conversion in the"},{"line_number":15,"context_line":"create_scope method, consistent with how set_last_processed_timestamp"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"0d28b495_048c6ebd","line":12,"range":{"start_line":9,"start_character":1,"end_line":12,"end_character":1},"updated":"2026-01-29 16:04:42.000000000","message":"This looks like there\u0027s missing test coverage if that was happening and all the tests were still passing.\n\nDoes this update need some additional test coverage?","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"277115c882bafec287857168dcf208cc0260ef94","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix the Scope API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The POST endpoint for creating scopes was failing with an IntegrityError"},{"line_number":10,"context_line":"because last_processed_timestamp was not accepted as an input parameter"},{"line_number":11,"context_line":"and was passed as None to the database, which requires a NOT NULL value."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This change adds last_processed_timestamp as a required parameter in the"},{"line_number":14,"context_line":"POST input schema and ensures proper UTC timezone conversion in the"},{"line_number":15,"context_line":"create_scope method, consistent with how set_last_processed_timestamp"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9b664d57_4274d3af","line":12,"range":{"start_line":9,"start_character":1,"end_line":12,"end_character":1},"in_reply_to":"0d28b495_048c6ebd","updated":"2026-02-03 09:17:24.000000000","message":"Done","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"88871358c9e502a6fa724672707c39f22b3647e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"02efd9a7_cb827162","updated":"2025-12-15 08:08:31.000000000","message":"recheck","commit_id":"af7ce1c06be3e7d316c19ac8fe676280386e746d"}],"cloudkitty/api/v2/scope/state.py":[{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"ef673b8f416f812aa1763c6b83bb4abd0d14674e","unresolved":true,"context_lines":[{"line_number":273,"context_line":"            identifier\u003dscope_id)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        update_storage_scope \u003d storage_scopes[0]"},{"line_number":276,"context_line":"        last_processed_timestamp \u003d None"},{"line_number":277,"context_line":"        if update_storage_scope.last_processed_timestamp:"},{"line_number":278,"context_line":"            last_processed_timestamp \u003d\\"},{"line_number":279,"context_line":"                update_storage_scope.last_processed_timestamp.isoformat()"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        return {"},{"line_number":282,"context_line":"            \u0027scope_id\u0027: update_storage_scope.identifier,"}],"source_content_type":"text/x-python","patch_set":1,"id":"42e9fb6b_9be275f7","line":279,"range":{"start_line":276,"start_character":0,"end_line":279,"end_character":73},"updated":"2026-01-05 09:36:20.000000000","message":"Do we still need to look this back up, now we pass last_processed_timestamp in?","commit_id":"af7ce1c06be3e7d316c19ac8fe676280386e746d"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"c334883e33eb1e99b87c8c37576ad61793b2677a","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            identifier\u003dscope_id)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"        update_storage_scope \u003d storage_scopes[0]"},{"line_number":276,"context_line":"        last_processed_timestamp \u003d None"},{"line_number":277,"context_line":"        if update_storage_scope.last_processed_timestamp:"},{"line_number":278,"context_line":"            last_processed_timestamp \u003d\\"},{"line_number":279,"context_line":"                update_storage_scope.last_processed_timestamp.isoformat()"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        return {"},{"line_number":282,"context_line":"            \u0027scope_id\u0027: update_storage_scope.identifier,"}],"source_content_type":"text/x-python","patch_set":1,"id":"93dd1f55_c55345de","line":279,"range":{"start_line":276,"start_character":0,"end_line":279,"end_character":73},"in_reply_to":"42e9fb6b_9be275f7","updated":"2026-01-15 15:17:20.000000000","message":"Sorry, this comment slipped, I have addressed it now.","commit_id":"af7ce1c06be3e7d316c19ac8fe676280386e746d"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"04b1dbaef3f7a493d1795b3c4087414de7cbf7c3","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        voluptuous.Required(\u0027scope_key\u0027): vutils.get_string_type(),"},{"line_number":239,"context_line":"        voluptuous.Required(\u0027fetcher\u0027): vutils.get_string_type(),"},{"line_number":240,"context_line":"        voluptuous.Required(\u0027collector\u0027): vutils.get_string_type(),"},{"line_number":241,"context_line":"        voluptuous.Optional(\u0027last_processed_timestamp\u0027):"},{"line_number":242,"context_line":"            voluptuous.Coerce(tzutils.dt_from_iso),"},{"line_number":243,"context_line":"        voluptuous.Required(\u0027active\u0027): bool,"},{"line_number":244,"context_line":"        voluptuous.Required(\u0027scope_activation_toggle_date\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"345b1066_a090d819","line":241,"updated":"2026-02-03 09:14:39.000000000","message":"As Rafael said, this is already happening. The last_processed_timestamp is always included in the response.","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"},{"author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"change_message_id":"eb136957d3951df9a40b479c0a086e150028165e","unresolved":true,"context_lines":[{"line_number":238,"context_line":"        voluptuous.Required(\u0027scope_key\u0027): vutils.get_string_type(),"},{"line_number":239,"context_line":"        voluptuous.Required(\u0027fetcher\u0027): vutils.get_string_type(),"},{"line_number":240,"context_line":"        voluptuous.Required(\u0027collector\u0027): vutils.get_string_type(),"},{"line_number":241,"context_line":"        voluptuous.Optional(\u0027last_processed_timestamp\u0027):"},{"line_number":242,"context_line":"            voluptuous.Coerce(tzutils.dt_from_iso),"},{"line_number":243,"context_line":"        voluptuous.Required(\u0027active\u0027): bool,"},{"line_number":244,"context_line":"        voluptuous.Required(\u0027scope_activation_toggle_date\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"cb541649_19d88c8a","line":241,"updated":"2026-01-29 15:59:27.000000000","message":"Should the `last_processed_timestamp` be required on the output as well as the input?\n\nOr is it omitted from the output when the value of `last_processed_change` is None?","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"277115c882bafec287857168dcf208cc0260ef94","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        voluptuous.Required(\u0027scope_key\u0027): vutils.get_string_type(),"},{"line_number":239,"context_line":"        voluptuous.Required(\u0027fetcher\u0027): vutils.get_string_type(),"},{"line_number":240,"context_line":"        voluptuous.Required(\u0027collector\u0027): vutils.get_string_type(),"},{"line_number":241,"context_line":"        voluptuous.Optional(\u0027last_processed_timestamp\u0027):"},{"line_number":242,"context_line":"            voluptuous.Coerce(tzutils.dt_from_iso),"},{"line_number":243,"context_line":"        voluptuous.Required(\u0027active\u0027): bool,"},{"line_number":244,"context_line":"        voluptuous.Required(\u0027scope_activation_toggle_date\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"271fad3b_44ea648d","line":241,"in_reply_to":"6b077b67_f7dc570b","updated":"2026-02-03 09:17:24.000000000","message":"Done","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"1cbb3958d371193cf883b9626a6e5788a3ca80c8","unresolved":true,"context_lines":[{"line_number":238,"context_line":"        voluptuous.Required(\u0027scope_key\u0027): vutils.get_string_type(),"},{"line_number":239,"context_line":"        voluptuous.Required(\u0027fetcher\u0027): vutils.get_string_type(),"},{"line_number":240,"context_line":"        voluptuous.Required(\u0027collector\u0027): vutils.get_string_type(),"},{"line_number":241,"context_line":"        voluptuous.Optional(\u0027last_processed_timestamp\u0027):"},{"line_number":242,"context_line":"            voluptuous.Coerce(tzutils.dt_from_iso),"},{"line_number":243,"context_line":"        voluptuous.Required(\u0027active\u0027): bool,"},{"line_number":244,"context_line":"        voluptuous.Required(\u0027scope_activation_toggle_date\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"6b077b67_f7dc570b","line":241,"in_reply_to":"cb541649_19d88c8a","updated":"2026-02-02 14:28:06.000000000","message":"It is always put in the response.","commit_id":"ea8c95a95d491c15e230995615fb322e23604db0"}]}
