)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"6c95f636c77e843603c9992a90391e7b57a8cdbd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"42ca9e7c_3064ceb2","updated":"2026-08-06 10:39:46.000000000","message":"recheck","commit_id":"e0d689b84480c3b1c1777cd26fc7c2a2ec1022ab"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"257889b7f1a958aa7857c8312ebf757ffc1fe0e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"4f2ac232_96104c6e","updated":"2026-08-06 10:05:24.000000000","message":"recheck","commit_id":"e0d689b84480c3b1c1777cd26fc7c2a2ec1022ab"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"3d35124ff4f0b418cc91cc1d3b8fa9ce7a76ac76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"f8bee9b3_ef618d6b","updated":"2026-08-06 10:13:01.000000000","message":"recheck","commit_id":"e0d689b84480c3b1c1777cd26fc7c2a2ec1022ab"}],"watcher_dashboard/test/integration/playwright_base.py":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"2479a99cd1738754dd873a7b4288dbbb9c049989","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":358,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.wait_for_success_message()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_created\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"fe66df51_65ebc45e","line":360,"updated":"2026-07-31 14:35:21.000000000","message":"The cleanup call at line 360 now passes the template name instead of a resolved UUID to _delete_audit_template_via_api, but the function signature (template_uuid), docstring (\u0027UUID of the audit template to delete\u0027), and log messages (\u0027uuid\u003d%s\u0027) all still describe the parameter as a UUID. This cre...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Future maintainers reading _delete_audit_template_via_api will assume it receives a UUID and may debug incorrectly when cleanup fails. The log output will show a name labeled as \u0027uuid\u003d\u0027, making diagnosis harder. If the Watcher API ever stops accepting names for delete operations, cleanup will fai...\n\n**Recommendation**:\nEither create a _cleanup_audit_template_by_name method that resolves the UUID at cleanup time (mirroring _cleanup_audit_by_name for consistency), or at minimum rename the parameter to template_identifier and update the docstring and log messages to reflect that it accepts a name.","commit_id":"cbb6bf4ac470193401441a0ec6a3f0db946fc60e"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"dfe51efc2c7fda93987cf85db1682098cd64be7e","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":358,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.wait_for_success_message()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_created\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"c751cc54_3d73d53b","line":360,"updated":"2026-08-03 09:57:32.000000000","message":"The addCleanup call for audit templates now passes the human-readable name to _delete_audit_template_via_api, which expects a UUID. Unlike the audit cleanup path where a new _cleanup_audit_by_name method was added to resolve name to UUID, the audit template path does not resolve the name before c...\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: The watcherclient audit_template.delete() call will likely fail because it receives a name string instead of a UUID. The exception is caught and only logged (line 443-448), so the test will not visibly fail but the audit template resource will be orphaned in the Watcher deployment. This directly...\n\n**Priority**: Before merge\n**Why This Matters**: The watcherclient audit_template.delete() call will likely fail because it receives a name string instead of a UUID. The exception is caught and only logged (line 443-448), so the test will not visibly fail but the audit template resource will be orphaned in the Watcher deployment. This directly...\n\n**Recommendation**:\nCreate a _cleanup_audit_template_by_name method that mirrors _cleanup_audit_by_name: resolve the name to UUID via self.watcher_client.audit_template.get(name).uuid at cleanup time, handle the case where the template no longer exists, then call _delete_audit_template_via_api with the resolved UUID. Alternatively, update _delete_audit_template_via_api to accept a name parameter and resolve it internally before calling delete.","commit_id":"861fd42b2cc35b8c7c0f969aabaff901bd81e697"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"89e9d8232c7d4b0740e1e2b483baf87a52b9db1e","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":358,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.wait_for_success_message()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_created\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba214062_4c5de13f","line":360,"updated":"2026-08-03 11:26:21.000000000","message":"After this change, addCleanup passes the audit template name to _delete_audit_template_via_api, but that method\u0027s parameter is still named template_uuid, its docstring says \u0027UUID of the audit template to delete\u0027, and its log messages print \u0027uuid\u003d%s\u0027. This mismatch will confuse future maintainers...\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: A future developer reading the code may assume the parameter is a UUID and pass one, or may misinterpret log output. If watcherclient ever changes to reject names in audit_template.delete(), cleanup would silently fail. The audit path correctly created _cleanup_audit_by_name to resolve UUID from...\n\n**Recommendation**:\nEither rename the parameter and update the docstring and log messages to reflect that it accepts a name (e.g., param name \u0027template_name\u0027), or follow the same pattern used for audits and create a _cleanup_audit_template_by_name wrapper that resolves the UUID during cleanup before calling _delete_audit_template_via_api with the resolved UUID.","commit_id":"5c9109a6ae2388001d4d984ca01430287e5f5841"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"8a46eab8073625d7cee0823028e1f410807ee008","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        self.wait_for_success_message()"},{"line_number":368,"context_line":"        self.take_screenshot(\"audit_template_created\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"55c8e21f_00c013d8","line":365,"updated":"2026-08-04 10:09:39.000000000","message":"create_audit_template now registers addCleanup(self._delete_audit_template_via_api, name) passing the template name, but _delete_audit_template_via_api still names its parameter template_uuid, documents it as \u0027UUID of the audit template to delete\u0027, and logs it with \u0027uuid\u003d%s\u0027 format. The method\u0027s...\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Future maintainers reading _delete_audit_template_via_api will assume it receives a UUID, but the call site passes a template name. If someone later refactors the cleanup to add UUID-based operations (e.g., filtering related resources by UUID), they would pass the name where a UUID is expected, c...\n\n**Recommendation**:\nRename the parameter from template_uuid to template_name (or template_identifier) in _delete_audit_template_via_api, update the docstring to reflect that it accepts a name, and update the log messages to use \u0027name\u003d%s\u0027 instead of \u0027uuid\u003d%s\u0027. Alternatively, create a _cleanup_audit_template_by_name wrapper that resolves the UUID from name before deletion, mirroring the pattern used in _cleanup_audit_by_name for consistency.","commit_id":"53c2da386ae652f909253461572d73ee0f77f221"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"f351480986ad253a87be8ae678640901b7ebedb3","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        self.wait_for_success_message()"},{"line_number":368,"context_line":"        self.take_screenshot(\"audit_template_created\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"056a19bb_e7e682fc","line":365,"updated":"2026-08-05 07:43:40.000000000","message":"The change at line 365 now passes the template name string to _delete_audit_template_via_api instead of a UUID. However, the method signature still names the parameter \u0027template_uuid\u0027, the docstring says \u0027UUID of the audit template to delete\u0027, and both LOG.info calls format it as \u0027uuid\u003d%s\u0027. This...\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Future maintainers reading _delete_audit_template_via_api will expect a UUID but receive a name. Log messages will display a human-readable name labeled as \u0027uuid\u0027, making debugging harder. The inconsistency may also mask issues if the watcher client\u0027s delete method behaves differently for names v...\n\n**Recommendation**:\nRename the parameter from \u0027template_uuid\u0027 to \u0027template_ref\u0027 or \u0027template_identifier\u0027, update the docstring to say \u0027Name or UUID of the audit template to delete\u0027, and update the log messages to use \u0027id\u003d%s\u0027 instead of \u0027uuid\u003d%s\u0027.","commit_id":"e1c3e0de5fd4ab1622d9bac11dd9eedab2caa1a0"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"f351480986ad253a87be8ae678640901b7ebedb3","unresolved":false,"context_lines":[{"line_number":421,"context_line":"    def _cleanup_audit_by_name(self, audit_name):"},{"line_number":422,"context_line":"        \"\"\"Clean up an audit and its associated resources by name."},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        Resolves the audit UUID from its name, then deletes actions,"},{"line_number":425,"context_line":"        action plans, and the audit itself in the correct order."},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"        :param audit_name: Name of the audit to clean up"}],"source_content_type":"text/x-python","patch_set":7,"id":"0a1be676_6fc8419f","line":424,"updated":"2026-08-05 07:43:40.000000000","message":"The new _cleanup_audit_by_name docstring states it \u0027deletes actions, action plans, and the audit itself\u0027 but the implementation only calls _delete_action_plans_for_audit_via_api and _delete_audit_via_api. No individual actions are explicitly deleted. While actions may cascade-delete with action p...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: A maintainer reading the docstring may expect explicit action cleanup logic and waste time looking for it, or may add unnecessary action deletion code believing it is missing.\n\n**Recommendation**:\nUpdate the docstring to accurately reflect what the method does, e.g., \u0027Resolves the audit UUID from its name, then deletes associated action plans and the audit itself in the correct order.\u0027","commit_id":"e1c3e0de5fd4ab1622d9bac11dd9eedab2caa1a0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d453a2f8f789d8b2b97f56d04b49e702f1ac0fb4","unresolved":true,"context_lines":[{"line_number":362,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        self.wait_for_success_message()"},{"line_number":368,"context_line":"        self.take_screenshot(\"audit_template_created\")"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"d82aea9a_3610d80a","line":366,"range":{"start_line":365,"start_character":17,"end_line":366,"end_character":1},"updated":"2026-08-05 11:42:27.000000000","message":"i would have put it even before the screenshot\n\nin general you want cleanup functions to immediately  follow the resource that is being cleaned up\n\nthe snapshot shoudl not fail but still best practice to not have intermediary actions","commit_id":"f9be1def42592377cf110297403b46f3b10de8b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c087796c5c87f6c08425896ee1243b1d0f500c8","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        self.wait_for_success_message()"},{"line_number":368,"context_line":"        self.take_screenshot(\"audit_template_created\")"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"82cd7bc7_f31c4eab","line":366,"range":{"start_line":365,"start_character":17,"end_line":366,"end_character":1},"in_reply_to":"c9953bbb_30c79d8e","updated":"2026-08-05 16:41:22.000000000","message":"Done","commit_id":"f9be1def42592377cf110297403b46f3b10de8b4"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"6c3da87c099b69b1eaa2d78e93d2615ef9b952b8","unresolved":true,"context_lines":[{"line_number":362,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit Template\").click()"},{"line_number":363,"context_line":"        self.take_screenshot(\"audit_template_submit\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        self.addCleanup(self._delete_audit_template_via_api, name)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        self.wait_for_success_message()"},{"line_number":368,"context_line":"        self.take_screenshot(\"audit_template_created\")"},{"line_number":369,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"c9953bbb_30c79d8e","line":366,"range":{"start_line":365,"start_character":17,"end_line":366,"end_character":1},"in_reply_to":"d82aea9a_3610d80a","updated":"2026-08-05 12:00:06.000000000","message":"I like that, moved the cleanup between the click and the snapshot","commit_id":"f9be1def42592377cf110297403b46f3b10de8b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d453a2f8f789d8b2b97f56d04b49e702f1ac0fb4","unresolved":true,"context_lines":[{"line_number":427,"context_line":"        :param audit_name: Name of the audit to clean up"},{"line_number":428,"context_line":"        :type audit_name: str"},{"line_number":429,"context_line":"        \"\"\""},{"line_number":430,"context_line":"        try:"},{"line_number":431,"context_line":"            audit_uuid \u003d self._get_audit_uuid_via_api(audit_name)"},{"line_number":432,"context_line":"        except watcher_exceptions.ClientException as exc:"},{"line_number":433,"context_line":"            LOG.warning("},{"line_number":434,"context_line":"                \"API cleanup: audit \u0027%s\u0027 not found, skipping: %s\","},{"line_number":435,"context_line":"                audit_name,"},{"line_number":436,"context_line":"                exc,"},{"line_number":437,"context_line":"            )"},{"line_number":438,"context_line":"            return"},{"line_number":439,"context_line":"        self._delete_action_plans_for_audit_via_api(audit_uuid)"},{"line_number":440,"context_line":"        self._delete_audit_via_api(audit_uuid)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _delete_audit_template_via_api(self, template_id):"},{"line_number":443,"context_line":"        \"\"\"Delete an audit template using the Watcher API."}],"source_content_type":"text/x-python","patch_set":9,"id":"626746a8_b4c174c8","line":440,"range":{"start_line":430,"start_character":1,"end_line":440,"end_character":46},"updated":"2026-08-05 11:42:27.000000000","message":"```suggestion\n        try:\n            audit_uuid \u003d self._get_audit_uuid_via_api(audit_name)\n            self._delete_action_plans_for_audit_via_api(audit_uuid)\n            self._delete_audit_via_api(audit_uuid)\n        except watcher_exceptions.ClientException as exc:\n            LOG.warning(\n                \"API cleanup: audit \u0027%s\u0027 not found, skipping: %s\",\n                audit_name,\n                exc,\n            )\n \n```","commit_id":"f9be1def42592377cf110297403b46f3b10de8b4"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"6c3da87c099b69b1eaa2d78e93d2615ef9b952b8","unresolved":false,"context_lines":[{"line_number":427,"context_line":"        :param audit_name: Name of the audit to clean up"},{"line_number":428,"context_line":"        :type audit_name: str"},{"line_number":429,"context_line":"        \"\"\""},{"line_number":430,"context_line":"        try:"},{"line_number":431,"context_line":"            audit_uuid \u003d self._get_audit_uuid_via_api(audit_name)"},{"line_number":432,"context_line":"        except watcher_exceptions.ClientException as exc:"},{"line_number":433,"context_line":"            LOG.warning("},{"line_number":434,"context_line":"                \"API cleanup: audit \u0027%s\u0027 not found, skipping: %s\","},{"line_number":435,"context_line":"                audit_name,"},{"line_number":436,"context_line":"                exc,"},{"line_number":437,"context_line":"            )"},{"line_number":438,"context_line":"            return"},{"line_number":439,"context_line":"        self._delete_action_plans_for_audit_via_api(audit_uuid)"},{"line_number":440,"context_line":"        self._delete_audit_via_api(audit_uuid)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _delete_audit_template_via_api(self, template_id):"},{"line_number":443,"context_line":"        \"\"\"Delete an audit template using the Watcher API."}],"source_content_type":"text/x-python","patch_set":9,"id":"5d6669a6_cda78eee","line":440,"range":{"start_line":430,"start_character":1,"end_line":440,"end_character":46},"in_reply_to":"626746a8_b4c174c8","updated":"2026-08-05 12:00:06.000000000","message":"Fix applied.","commit_id":"f9be1def42592377cf110297403b46f3b10de8b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c087796c5c87f6c08425896ee1243b1d0f500c8","unresolved":true,"context_lines":[{"line_number":411,"context_line":"        self.page.get_by_role(\"button\", name\u003d\"Create Audit\").click()"},{"line_number":412,"context_line":"        self.take_screenshot(\"audit_submit\")"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        self.addCleanup(self._cleanup_audit_by_name, audit_name)"},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"        self.wait_for_success_message()"},{"line_number":417,"context_line":"        self.take_screenshot(\"audit_created\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"33771375_9de88fba","line":414,"updated":"2026-08-05 16:41:22.000000000","message":"you could have don the same here :)","commit_id":"e0d689b84480c3b1c1777cd26fc7c2a2ec1022ab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c087796c5c87f6c08425896ee1243b1d0f500c8","unresolved":true,"context_lines":[{"line_number":427,"context_line":"        :param audit_name: Name of the audit to clean up"},{"line_number":428,"context_line":"        :type audit_name: str"},{"line_number":429,"context_line":"        \"\"\""},{"line_number":430,"context_line":"        try:"},{"line_number":431,"context_line":"            audit_uuid \u003d self._get_audit_uuid_via_api(audit_name)"},{"line_number":432,"context_line":"            self._delete_action_plans_for_audit_via_api(audit_uuid)"},{"line_number":433,"context_line":"            self._delete_audit_via_api(audit_uuid)"},{"line_number":434,"context_line":"        except watcher_exceptions.ClientException as exc:"},{"line_number":435,"context_line":"            LOG.warning("},{"line_number":436,"context_line":"                \"API cleanup: audit \u0027%s\u0027 not found, skipping: %s\","},{"line_number":437,"context_line":"                audit_name,"},{"line_number":438,"context_line":"                exc,"},{"line_number":439,"context_line":"            )"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def _delete_audit_template_via_api(self, template_id):"},{"line_number":442,"context_line":"        \"\"\"Delete an audit template using the Watcher API."},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"49896b4e_ba03a06f","line":440,"range":{"start_line":430,"start_character":1,"end_line":440,"end_character":1},"updated":"2026-08-05 16:41:22.000000000","message":"this was the main reaons for the -1 before thanks for simplfying that","commit_id":"e0d689b84480c3b1c1777cd26fc7c2a2ec1022ab"}]}
