)]}'
{"doc/source/contributor/selenium-testing.rst":[{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"c6c1353a_afd6a416","line":70,"updated":"2025-12-18 10:44:07.000000000","message":"Missing security considerations documentation\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Better security awareness for developers running browser automation tests\n\n**Recommendation**:\nAdd security section covering credential handling, test isolation, and browser automation risks","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"}],"playbooks/selenium/pre.yaml":[{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"b900a972_9430993b","line":8,"updated":"2025-12-11 09:14:04.000000000","message":"Add validation for required selenium dependencies in the CI environment\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Provides clearer error messages when selenium dependencies are missing\n\n**Recommendation**:\nAdd explicit checks for chrome/chromium availability before running tests","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"}],"test-requirements.txt":[{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"9b8d2434_898f14c9","line":5,"updated":"2025-12-11 14:43:20.000000000","message":"Selenium dependency pinned to outdated version 3.141.0 from 2019\n\n**Severity**: CRITICAL | **Confidence**: 0.9\n\n**Risk**: Security and compatibility issues with outdated Selenium version\n\n**Priority**: Before merge\n**Why This Matters**: Selenium 3.141.0 lacks security fixes and modern browser support; may cause test failures\n\n**Recommendation**:\nUpdate to Selenium 4.x (latest stable) for improved security and browser compatibility","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"60e4e0dc_07520a02","line":5,"updated":"2025-12-18 10:11:19.000000000","message":"Outdated Selenium version in test-requirements.txt\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Missing newer Selenium features and browser support\n\n**Suggestion**:\nConsider upgrading to Selenium 4.x series for better browser compatibility and maintained support","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"}],"tox.ini":[{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"1475cae1_af523ac9","line":58,"updated":"2025-12-11 13:29:00.000000000","message":"Implement proper test discovery pattern\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Better test organization and selective execution\n\n**Recommendation**:\nUse stestr\u0027s test path filters for granular test selection (e.g., smoke tests)","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"}],"watcher_dashboard/test/integration/__init__.py":[{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"9e2edd49_6e026c6a","line":18,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: W391 blank line at end of file","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"5b72e42c_7c5c73c1","line":18,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: W391 blank line at end of file","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"}],"watcher_dashboard/test/integration/base.py":[{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"5ad1f82e_b928bf95","line":33,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: H306: imports not in alphabetical order (selenium.webdriver, selenium.common.exceptions)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"ae2b836c_55e5822c","line":122,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (83 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"6c7c7a46_2dc79226","line":221,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (90 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"ad497a6e_3831781f","line":365,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"41599fce_74e13b09","line":416,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"076b0218_3cce4e3f","line":417,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (96 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"ff97c607_1d9ebc16","line":438,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"b41ac19d_dd8533cb","line":446,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"9daa4ea9_70b55b65","line":451,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"e2353d11_d2b5b80c","line":471,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"ad666f80_a711198b","line":489,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: W391 blank line at end of file","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"cff87348_5c081a7c","line":42,"updated":"2025-12-11 07:34:47.000000000","message":"Add logging configuration for test execution\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Better logging would help debug test failures in CI environments\n\n**Recommendation**:\nConfigure logging levels and output formats specifically for test execution","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"945bd2f6_7d2dcd28","line":69,"updated":"2025-12-11 07:34:47.000000000","message":"Consider using pytest fixtures for browser setup\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Would provide cleaner setup/teardown and better test isolation\n\n**Recommendation**:\nRefactor to use pytest fixtures with scope\u003d\u0027class\u0027 for browser management","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"d05292e5_afcb4707","line":82,"updated":"2025-12-11 07:34:47.000000000","message":"Consider using context managers for browser sessions\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Context managers would ensure proper resource cleanup\n\n**Recommendation**:\nImplement browser session as a context manager for automatic cleanup","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"04dc8090_52014113","line":90,"updated":"2025-12-11 07:34:47.000000000","message":"Screenshots directory creation without error handling\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Silent failure if screenshot directory cannot be created\n\n**Suggestion**:\nAdd error handling for directory creation and log appropriate warnings","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"7336a958_41ba3271","line":110,"updated":"2025-12-11 07:34:47.000000000","message":"Browser path detection logic is fragile and platform-specific\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Test failures on different platforms or when Chrome is installed in non-standard locations\n\n**Priority**: Before merge\n**Why This Matters**: Hardcoded paths limit test portability across different CI/CD environments\n\n**Recommendation**:\nUse more robust browser detection like \u0027which chrome\u0027 or platform-agnostic path resolution","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"6dcc6ae5_8a1a1952","line":126,"updated":"2025-12-11 07:34:47.000000000","message":"Line length exceeds project\u0027s 79-character limit\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Code readability issues and potential style check failures\n\n**Suggestion**:\nBreak long lines into multiple lines to comply with project\u0027s ruff configuration","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"bc1a9dfc_506d72a4","line":150,"updated":"2025-12-11 07:34:47.000000000","message":"Unclear error messages in exception handling\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Generic exception handling may hide specific driver installation issues\n\n**Suggestion**:\nProvide more specific error messages for different types of webdriver-manager failures","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"f16d5fe9_4643bc3c","line":217,"updated":"2025-12-11 07:34:47.000000000","message":"Inconsistent exception handling in _delete_resource method\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: Silent failures during resource cleanup could leave test artifacts and pollute test environment\n\n**Priority**: Before merge\n**Why This Matters**: Resource cleanup failures are only logged at warning level, potentially hiding issues that could affect subsequent tests\n\n**Recommendation**:\nImplement a cleanup retry mechanism and consider raising exceptions for critical cleanup failures","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"2cc19662_8ad21374","line":264,"updated":"2025-12-11 07:34:47.000000000","message":"No cleanup of screenshots between test runs\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Screenshot directory may grow indefinitely over time\n\n**Suggestion**:\nConsider implementing screenshot cleanup or rotation policies","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"69649644_1c3f721d","line":387,"updated":"2025-12-11 07:34:47.000000000","message":"Potential infinite loop in _wait_for_audit_status without proper timeout handling\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Could cause tests to hang indefinitely if audit status never changes, blocking CI pipelines\n\n**Priority**: Before merge\n**Why This Matters**: Long-running tests without proper timeout handling can consume CI resources and delay feedback\n\n**Recommendation**:\nAdd exponential backoff for poll_interval and implement early termination for error states","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"a22b6159_b2a23b48","line":414,"updated":"2025-12-11 07:34:47.000000000","message":"Implement test data factories for resource creation\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Factory pattern would make test data creation more flexible and reusable\n\n**Recommendation**:\nCreate factory methods for generating test data with customizable attributes","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"f3117c7d_1f7be996","line":463,"updated":"2025-12-11 07:34:47.000000000","message":"Using deprecated selenium API find_element_by_*\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Code uses deprecated Selenium 2.x API which may be removed in future versions\n\n**Suggestion**:\nUpdate to use the modern find_element(By.*, locator) API consistently","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"2e2f0818_5c958ade","line":25,"updated":"2025-12-11 09:14:04.000000000","message":"Import organization does not follow OpenStack stdlib→third-party→local ordering in base.py\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Code readability and OpenStack compliance\n\n**Suggestion**:\nReorder imports: stdlib imports first (logging, os, time, unittest), then django, then selenium, then local imports","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"},{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"c5a80106_b913174a","line":160,"updated":"2025-12-11 09:14:04.000000000","message":"Consider adding retry logic for WebDriver operations that may fail intermittently\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Increases test reliability in CI environments with network variability\n\n**Recommendation**:\nWrap WebDriver initialization with retry logic for connection failures","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"},{"robot_id":"zuul","robot_run_id":"05e2742da5054553a5d76feb6767d60c","url":"https://zuul.teim.app/t/main/buildset/05e2742da5054553a5d76feb6767d60c","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":"8ce4d6aa2f4b6bf70eb5aad05fb56059dbd515b5","patch_set":6,"id":"20382102_c7b6985d","line":108,"updated":"2025-12-11 10:41:55.000000000","message":"Chrome binary path is hardcoded to snap location\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Would improve portability across different Linux distributions and CI environments\n\n**Recommendation**:\nMake Chrome binary path configurable via environment variable with fallback detection","commit_id":"e95b8fb81b74be2f0f51c2bc0711456339a0815a"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"1faa871c_9b201442","line":86,"updated":"2025-12-11 13:29:00.000000000","message":"Add retry mechanism for browser initialization\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Improves test reliability on unstable CI environments\n\n**Recommendation**:\nImplement retry logic with exponential backoff for webdriver initialization","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"55d27d10_0c7dfccb","line":109,"updated":"2025-12-11 13:29:00.000000000","message":"Missing error handling for temporary directory creation\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Test failures on read-only filesystems or permission issues\n\n**Priority**: Before merge\n**Why This Matters**: Silent failures in temp directory creation can cause confusing test failures\n\n**Recommendation**:\nWrap tempfile.mkdtemp() in try/except with proper error logging and fallback.","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"e668d56f_0b7ddca8","line":123,"updated":"2025-12-11 13:29:00.000000000","message":"Hardcoded Chromium binary path in base.py breaks portability\n\n**Severity**: CRITICAL | **Confidence**: 0.9\n\n**Risk**: Tests will fail on systems without Chromium at exact snap path\n\n**Priority**: Immediate\n**Why This Matters**: This prevents the framework from running on non-Ubuntu systems or different Chromium installations, making CI fragile\n\n**Recommendation**:\nUse dynamic detection or allow override via environment variable. Fallback to system PATH before hardcoded paths.","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"78cdd024_ae9de74a","line":221,"updated":"2025-12-11 13:29:00.000000000","message":"Resource cleanup uses generic exception handling\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: May hide underlying issues during cleanup\n\n**Suggestion**:\nLog specific exception types and consider using logger.exception() for full tracebacks in debug mode","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"f539759f_41b26781","line":230,"updated":"2025-12-11 13:29:00.000000000","message":"Stale element reference handling in _delete_resource\n\n**Severity**: WARNING | **Confidence**: 0.6\n\n**Impact**: May mask timing issues in resource deletion\n\n**Suggestion**:\nAdd retry mechanism with exponential backoff for element interactions","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"14d681ab_0756a260","line":273,"updated":"2025-12-11 13:29:00.000000000","message":"No authentication validation before interacting with dashboard\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Tests may continue execution with failed login, causing false negatives\n\n**Priority**: Before merge\n**Why This Matters**: Undetected authentication failures waste CI time and produce misleading test results\n\n**Recommendation**:\nAdd explicit assertion to verify successful login before proceeding with test actions.","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"6a71fbf4_e2918d97","line":80,"updated":"2025-12-11 14:43:20.000000000","message":"Add test isolation verification to prevent resource conflicts\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Would prevent test interference when running in parallel\n\n**Recommendation**:\nAdd checks to ensure unique resource names don\u0027t conflict with existing resources","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"1d43feb5_fd1ba23f","line":162,"updated":"2025-12-11 14:43:20.000000000","message":"Browser executable path detection vulnerable to command injection\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Security vulnerability if CHROME_BIN environment variable is compromised\n\n**Priority**: Before merge\n**Why This Matters**: Malicious environment variable could execute arbitrary commands\n\n**Recommendation**:\nValidate executable paths before use; whitelist allowed binary locations","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"ffeb0e87_31cbf266","line":235,"updated":"2025-12-11 14:43:20.000000000","message":"CSS selector using string concatenation for resource names\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Potential CSS injection if resource names contain special characters\n\n**Suggestion**:\nEscape or validate resource names before using in CSS selectors","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"fedd2970_38bf6ea8","line":277,"updated":"2025-12-11 14:43:20.000000000","message":"Exception handling in _delete_resource catches too broad exceptions\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: May hide important Selenium errors during cleanup\n\n**Suggestion**:\nCatch more specific Selenium exceptions instead of generic WebDriverException","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"44655b48_adfbc697","line":410,"updated":"2025-12-11 14:43:20.000000000","message":"Long polling method without exponential backoff\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: May overload dashboard with frequent page refreshes during status polling\n\n**Suggestion**:\nImplement exponential backoff for polling to reduce server load","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"84a31f7b_0f885276","line":25,"updated":"2025-12-12 05:33:33.000000000","message":"Missing import organization in base.py - stdlib imports not first\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: Code may fail import validation checks, affects maintainability\n\n**Priority**: Before merge\n**Why This Matters**: OpenStack requires strict import ordering (stdlib → third-party → OpenStack → local) for consistency and readability\n\n**Recommendation**:\nReorganize imports: Put \u0027import logging\u0027, \u0027import os\u0027, etc. before third-party imports like Django and Selenium","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"a81eeb69_7439f157","line":36,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: H306: imports not in alphabetical order (watcher_dashboard.test.integration.firefox_binary, selenium.common.exceptions)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"c5df17d5_3d00924f","line":96,"updated":"2025-12-12 05:33:33.000000000","message":"Potential memory leak in base.py screenshot directory\n\n**Severity**: WARNING | **Confidence**: 0.6\n\n**Impact**: Screenshots may accumulate over time\n\n**Suggestion**:\nAdd cleanup of old screenshots or use unique temporary directories","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"09317596_5d72f52b","line":153,"updated":"2025-12-12 05:33:33.000000000","message":"Missing error handling for Chrome binary detection\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: May fail silently if Chrome is not found\n\n**Suggestion**:\nAdd explicit error handling when Chrome binary is not found","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"3efb0392_98990d0a","line":202,"updated":"2025-12-12 05:33:33.000000000","message":"Add explicit resource cleanup validation in tearDownClass\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Would provide better debugging information for test failures\n\n**Recommendation**:\nAdd logging or validation that resources were actually cleaned up","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"698bf6a8dfd14a1cb3be2b94bbb9cd1e","url":"https://zuul.teim.app/t/main/buildset/698bf6a8dfd14a1cb3be2b94bbb9cd1e","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":"d6359770c5a0e7a32407a1838db6705b964426a4","patch_set":12,"id":"9633c811_04108961","line":267,"updated":"2025-12-12 07:32:05.000000000","message":"Exception handling in _delete_resource catches overly broad exceptions\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: May hide unexpected errors during cleanup\n\n**Suggestion**:\nReplace broad WebDriverException with more specific exception types, or add logging of full exception details","commit_id":"2ea5eb641643c5fb101872e5bba4142cec5a333d"},{"robot_id":"zuul","robot_run_id":"698bf6a8dfd14a1cb3be2b94bbb9cd1e","url":"https://zuul.teim.app/t/main/buildset/698bf6a8dfd14a1cb3be2b94bbb9cd1e","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":"d6359770c5a0e7a32407a1838db6705b964426a4","patch_set":12,"id":"419c6e41_676263a0","line":447,"updated":"2025-12-12 07:32:05.000000000","message":"Long method _create_audit_template exceeds complexity threshold\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Difficult to maintain and test; violates single responsibility principle\n\n**Suggestion**:\nExtract helper methods for form filling, option selection, and submission to improve readability and testability","commit_id":"2ea5eb641643c5fb101872e5bba4142cec5a333d"},{"robot_id":"zuul","robot_run_id":"b0677f3b48284625b3d32403a6573501","url":"https://zuul.teim.app/t/main/buildset/b0677f3b48284625b3d32403a6573501","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":"7828157eed2dbfde1f824f7e3164b66e8eb26927","patch_set":16,"id":"4e93b646_211809bb","line":22,"updated":"2025-12-12 14:15:29.000000000","message":"Unused import in base.py\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Code maintenance issue\n\n**Suggestion**:\nRemove unused import \u0027from django.test import tag\u0027 if not used, or verify it\u0027s needed for test tagging","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"b0677f3b48284625b3d32403a6573501","url":"https://zuul.teim.app/t/main/buildset/b0677f3b48284625b3d32403a6573501","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":"7828157eed2dbfde1f824f7e3164b66e8eb26927","patch_set":16,"id":"34e24217_be00281a","line":292,"updated":"2025-12-12 14:15:29.000000000","message":"Generic exception handling in some cleanup methods\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: May hide specific error conditions\n\n**Suggestion**:\nReplace generic except Exception with more specific exception types to improve debugging","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"e65358e7cad64c939b8630a8b958f907","url":"https://zuul.opendev.org/t/openstack/buildset/e65358e7cad64c939b8630a8b958f907","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8688d1b8a7f875307139caa510db14a1c55f89af","patch_set":16,"id":"ab812956_8b91e441","line":400,"updated":"2025-12-12 14:42:19.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"e65358e7cad64c939b8630a8b958f907","url":"https://zuul.opendev.org/t/openstack/buildset/e65358e7cad64c939b8630a8b958f907","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8688d1b8a7f875307139caa510db14a1c55f89af","patch_set":16,"id":"fa6006f4_d5e2d3d7","line":417,"updated":"2025-12-12 14:42:19.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"3f7ce3ae_2605d57d","line":202,"updated":"2025-12-18 10:11:19.000000000","message":"Temporary directory created without secure permissions\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Potential security vulnerability in shared environments\n\n**Priority**: Next sprint\n**Why This Matters**: Temporary files may be accessible to other users in multi-user environments\n\n**Recommendation**:\nSet permissions with mode\u003d0o700 when creating temporary directories","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"03c8c778_2f07c65f","line":222,"updated":"2025-12-18 10:11:19.000000000","message":"Deprecated Selenium API usage in base.py\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: Future compatibility issues with Selenium 4+\n\n**Priority**: Next sprint\n**Why This Matters**: DESIRED_CAPABILITIES and executable_path are deprecated in Selenium 4 and will cause failures when upgrading\n\n**Recommendation**:\nReplace dc.DesiredCapabilities.FIREFOX with Options() for Firefox, and use Service object for chromedriver executable path","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"57b1b8a5_0c5933a3","line":398,"updated":"2025-12-18 10:11:19.000000000","message":"Overly broad exception handling in cleanup methods\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Cleanup failures may mask important errors\n\n**Priority**: Before merge\n**Why This Matters**: Broad exception catches can hide real issues and make debugging difficult\n\n**Recommendation**:\nCatch specific exceptions (TimeoutException, NoSuchElementException) separately and handle cleanup appropriately","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"e9b09c76_d2872e8e","line":474,"updated":"2025-12-18 10:11:19.000000000","message":"File opened without context manager in _save_failure_artifacts\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: Resource leak if exception occurs between open and close\n\n**Priority**: Before merge\n**Why This Matters**: File handles may leak if exceptions occur, leading to resource exhaustion in long-running tests\n\n**Recommendation**:\nUse \u0027with open(page_source_path, \u0027w\u0027) as f:\u0027 pattern for proper resource management","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"abdfd0d8_eda9bbde","line":155,"updated":"2025-12-18 10:44:07.000000000","message":"Hardcoded browser selection logic\n\n**Severity**: SUGGESTION | **Confidence**: 0.6\n\n**Benefit**: Improved maintainability and easier extension for additional browsers\n\n**Recommendation**:\nCreate a Browser enum or constants class and use factory pattern for browser setup","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"cc46602e_548b805c","line":165,"updated":"2025-12-18 10:44:07.000000000","message":"Inefficient resource cleanup with hard-coded 60s timeout\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Slow test execution and unnecessary resource consumption in CI environments\n\n**Suggestion**:\nMake socket timeout configurable through environment variable or reduce to a more reasonable default like 30 seconds","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"427219ce_3f252221","line":167,"updated":"2025-12-18 10:44:07.000000000","message":"Missing error handling for browser cleanup registration\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Test failures and resource leaks in environments without addClassCleanup support\n\n**Suggestion**:\nWrap addClassCleanup in try/except with fallback to tearDown cleanup or add version compatibility check","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"7839bbcf_bc9a56d8","line":373,"updated":"2025-12-18 10:44:07.000000000","message":"CSS injection vulnerability in resource deletion\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: CSS injection attacks allowing malicious test data to manipulate DOM queries\n\n**Priority**: Before merge\n**Why This Matters**: Direct string interpolation in CSS selectors allows injection of arbitrary CSS, potentially breaking tests or enabling data exfiltration through crafted resource names\n\n**Recommendation**:\nUse CSS.escape() function or switch to XPath with proper escaping: `from selenium.webdriver.common.by import By; escaped_name \u003d CSS.escape(resource_name); row \u003d cls.driver.find_elements(By.CSS_SELECTOR, f\"tr[data-display\u003d\u0027{escaped_name}\u0027]\")`","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"3e938132_4e49373d","line":451,"updated":"2025-12-18 10:44:07.000000000","message":"Inconsistent exception handling patterns\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Inconsistent error reporting and difficulty debugging test failures\n\n**Suggestion**:\nStandardize on specific exception types and create consistent error handling patterns across all cleanup operations","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"c22f6716_517f314c","line":474,"updated":"2025-12-18 10:44:07.000000000","message":"File writing without proper encoding specification\n\n**Severity**: CRITICAL | **Confidence**: 0.9\n\n**Risk**: Data corruption and security issues in test logs due to encoding mismatches\n\n**Priority**: Immediate\n**Why This Matters**: Without explicit encoding, file operations may fail or produce corrupted output on different systems, compromising test reliability and potentially exposing sensitive data in unexpected formats\n\n**Recommendation**:\nAdd encoding\u003d\u0027utf-8\u0027 parameter to all file write operations: `with open(page_source_path, \u0027w\u0027, encoding\u003d\u0027utf-8\u0027) as f:`","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"},{"robot_id":"zuul","robot_run_id":"271daf32208541a69051e11257f9069d","url":"https://zuul.teim.app/t/main/buildset/271daf32208541a69051e11257f9069d","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":"43655eb03f0f2b1d06f5625467086890ae88642e","patch_set":18,"id":"d8d427a6_a60e4e99","line":618,"updated":"2025-12-18 10:44:07.000000000","message":"CSS injection in audit status checking\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Similar CSS injection vulnerability affecting audit monitoring\n\n**Priority**: Before merge\n**Why This Matters**: Audit name injection could compromise test isolation and potentially interfere with audit visibility or status checking mechanisms\n\n**Recommendation**:\nApply the same CSS escaping fix as above or use safer XPath expressions that don\u0027t rely on string interpolation","commit_id":"032590f48cca8e55872cc77a3e62a0fdb3b1658c"}],"watcher_dashboard/test/integration/config.py":[{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"e0ef0940_59e39313","line":110,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: W391 blank line at end of file","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"06aa4b3c_f4a220b9","line":13,"updated":"2025-12-11 07:34:47.000000000","message":"Add configuration validation schema\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Schema validation would catch configuration errors early\n\n**Recommendation**:\nUse pydantic or similar library to validate configuration structure","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"11846f06_866e9632","line":29,"updated":"2025-12-11 07:34:47.000000000","message":"Missing type hints for function parameters and return values\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Reduced code readability and maintainability without type information\n\n**Suggestion**:\nAdd type hints to all configuration functions to improve code documentation","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"343717ae_7651c7ae","line":29,"updated":"2025-12-11 07:34:47.000000000","message":"No validation for required environment variables\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Tests may fail with cryptic errors when required configuration is missing\n\n**Priority**: Before merge\n**Why This Matters**: Silent fallbacks to defaults may mask configuration issues in CI environments\n\n**Recommendation**:\nAdd validation functions to verify required settings are available and valid","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"ec582404_efd25a38","line":57,"updated":"2025-12-11 07:34:47.000000000","message":"Potential security vulnerability with hardcoded default password\n\n**Severity**: CRITICAL | **Confidence**: 0.8\n\n**Risk**: Hardcoded password \u0027secretadmin\u0027 could be exposed in logs or environment, creating a security risk if used in production\n\n**Priority**: Before merge\n**Why This Matters**: While this is test code, hardcoded passwords create poor security practices and could accidentally be used in production configurations\n\n**Recommendation**:\nReplace hardcoded default with environment variable validation and raise a clear error if no password is provided","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"20c32192_41934918","line":87,"updated":"2025-12-11 07:34:47.000000000","message":"Hardcoded timeouts may not suit all environments\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Fixed timeouts may cause test failures in slow CI environments\n\n**Suggestion**:\nMake timeouts configurable through environment variables with sensible defaults","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"df411fbc_8e0fcf48","line":25,"updated":"2025-12-11 09:14:04.000000000","message":"Import organization does not follow OpenStack stdlib→third-party→local ordering in config.py\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Code readability and OpenStack compliance\n\n**Suggestion**:\nReorder imports to place \u0027import os\u0027 before \u0027from functools import cache\u0027","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"},{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"a413f102_50e51de4","line":29,"updated":"2025-12-11 09:14:04.000000000","message":"Add docstring examples to show how to use the configuration functions\n\n**Severity**: SUGGESTION | **Confidence**: 0.6\n\n**Benefit**: Makes the configuration API more discoverable for new developers\n\n**Recommendation**:\nAdd simple examples in docstrings showing environment variable usage","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"},{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"3681a615_9c805bfb","line":29,"updated":"2025-12-11 09:14:04.000000000","message":"Consider adding type hints for better code documentation and IDE support\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Improves code readability and enables static type checking\n\n**Recommendation**:\nAdd type hints to all function signatures, e.g., -\u003e str for string return values","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"},{"robot_id":"zuul","robot_run_id":"255c3dfd8f3546599fe7c375b846da49","url":"https://zuul.teim.app/t/main/buildset/255c3dfd8f3546599fe7c375b846da49","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":"92f24a718424045e88fcafdf7f618dac4a3a4ce6","patch_set":7,"id":"aaea74d1_b7c3d0d4","line":82,"updated":"2025-12-11 13:29:00.000000000","message":"No timeout configuration for webdriver operations\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Tests may hang indefinitely on slow systems\n\n**Suggestion**:\nAdd configurable maximum timeouts and implement watchdog for long-running operations","commit_id":"5cb02fc60a18033033e8a98d5018d681f766cf2b"},{"robot_id":"zuul","robot_run_id":"9a258fe015c643e982e20f0da6d46d60","url":"https://zuul.teim.app/t/main/buildset/9a258fe015c643e982e20f0da6d46d60","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":"29d0763e32da1c865383618d03316f0ba815200f","patch_set":8,"id":"4fe9002f_fcf78914","line":57,"updated":"2025-12-11 14:27:30.000000000","message":"Hardcoded password in config.py default\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Potential security risk if defaults used in production\n\n**Priority**: Before merge\n**Why This Matters**: Hardcoded password \u0027secretadmin\u0027 as default could be misused, exposing a potential security vulnerability\n\n**Recommendation**:\nRemove default password or use a more secure default pattern like requiring password via environment variable","commit_id":"b06e833d5607aaffca40920584d34287ef092e7f"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"6b04f981_f14bb3f0","line":55,"updated":"2025-12-11 14:43:20.000000000","message":"Hardcoded test credentials in config defaults\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Potential security exposure if default credentials are used in production\n\n**Priority**: Before merge\n**Why This Matters**: Default credentials could be accidentally used, creating security risks\n\n**Recommendation**:\nRemove default password or use a randomly generated one; require explicit configuration","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"6e51bd0d_15d2d16b","line":25,"updated":"2025-12-12 05:33:33.000000000","message":"Import shadowing in config.py - using \u0027cache\u0027 from functools\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Potential confusion with Django cache, may cause subtle bugs\n\n**Priority**: Before merge\n**Why This Matters**: Using generic names like \u0027cache\u0027 can shadow other imports and make code harder to understand\n\n**Recommendation**:\nChange \u0027from functools import cache\u0027 to \u0027from functools import lru_cache\u0027 and use @lru_cache instead","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"698bf6a8dfd14a1cb3be2b94bbb9cd1e","url":"https://zuul.teim.app/t/main/buildset/698bf6a8dfd14a1cb3be2b94bbb9cd1e","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":"d6359770c5a0e7a32407a1838db6705b964426a4","patch_set":12,"id":"758d0409_c4a9e9fb","line":25,"updated":"2025-12-12 07:32:05.000000000","message":"Missing Python 3.10+ compatibility: @cache decorator requires Python 3.9+\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Code will fail on Python versions below 3.9\n\n**Suggestion**:\nReplace @cache with @functools.lru_cache(maxsize\u003dNone) for broader Python compatibility, or add Python version check","commit_id":"2ea5eb641643c5fb101872e5bba4142cec5a333d"},{"robot_id":"zuul","robot_run_id":"698bf6a8dfd14a1cb3be2b94bbb9cd1e","url":"https://zuul.teim.app/t/main/buildset/698bf6a8dfd14a1cb3be2b94bbb9cd1e","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":"d6359770c5a0e7a32407a1838db6705b964426a4","patch_set":12,"id":"b1d65c6e_52f486d7","line":57,"updated":"2025-12-12 07:32:05.000000000","message":"Hardcoded default password in config.py creates security exposure\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Default credentials could be exploited if configuration is misused\n\n**Priority**: Before merge\n**Why This Matters**: While this is test code, hardcoded credentials create a security anti-pattern that could be copied to production code\n\n**Recommendation**:\nRemove default password and raise ConfigurationError if OS_PASSWORD is not set. Document that password must be explicitly provided.","commit_id":"2ea5eb641643c5fb101872e5bba4142cec5a333d"},{"robot_id":"zuul","robot_run_id":"b0677f3b48284625b3d32403a6573501","url":"https://zuul.teim.app/t/main/buildset/b0677f3b48284625b3d32403a6573501","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":"7828157eed2dbfde1f824f7e3164b66e8eb26927","patch_set":16,"id":"27e52c65_3735d0a8","line":57,"updated":"2025-12-12 14:15:29.000000000","message":"Security issue: hardcoded default password in configuration\n\n**Severity**: CRITICAL | **Confidence**: 0.9\n\n**Risk**: Potential security exposure if default credentials are used in production\n\n**Priority**: Immediate\n**Why This Matters**: The default password \u0027secretadmin\u0027 is hardcoded and could be exposed in logs or error messages, creating a security risk if this configuration is accidentally used in production environments\n\n**Recommendation**:\nReplace the hardcoded default password with a more secure pattern like requiring OS_PASSWORD to be explicitly set or using environment variable validation with no default value","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"a5c43e28_46caa9c6","line":43,"updated":"2025-12-18 10:11:19.000000000","message":"Python 3.9+ dependency without explicit version check\n\n**Severity**: HIGH | **Confidence**: 0.7\n\n**Risk**: Runtime failure on older Python versions\n\n**Priority**: Before merge\n**Why This Matters**: functools.cache requires Python 3.9+, causing ImportError on older systems\n\n**Recommendation**:\nAdd version check or use functools.lru_cache(maxsize\u003dNone) for backward compatibility","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"}],"watcher_dashboard/test/integration/firefox_binary.py":[{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"85df21b0_c842abaf","line":70,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: S603 `subprocess` call: check for execution of untrusted input","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"7e660c65_fa731ce1","line":81,"updated":"2025-12-12 05:33:33.000000000","message":"Bare except clause in firefox_binary.py\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Catches all exceptions including SystemExit and KeyboardInterrupt\n\n**Suggestion**:\nReplace bare except with specific exceptions like (OSError, subprocess.SubprocessError)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"114ebbbb_5a5e0e22","line":97,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"65fbf5e2_27363c9d","line":141,"updated":"2025-12-12 05:33:33.000000000","message":"Using f-string in selenium_binary.py (line 141)\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Immediate string interpolation instead of delayed\n\n**Suggestion**:\nUse format() or % formatting for consistent string handling","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"7942c5e4_75b141ff","line":172,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: S603 `subprocess` call: check for execution of untrusted input","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"466b0f40_2dcd9f03","line":181,"updated":"2025-12-12 05:33:33.000000000","message":"Potential security issue with temp directory in firefox_binary.py\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Temp directory in /tmp may have race conditions\n\n**Suggestion**:\nUse tempfile.mkdtemp with proper permissions and cleanup","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"63e9d042_0970bdef","line":185,"updated":"2025-12-12 05:33:33.000000000","message":"Add docstring for firefox_binary.py WebDriver.__init__ method\n\n**Severity**: SUGGESTION | **Confidence**: 0.6\n\n**Benefit**: Improves code documentation and maintainability\n\n**Recommendation**:\nAdd proper OpenStack-style docstring explaining parameters and behavior","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"345edd47_ba991aac","line":199,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"b3186dd4_8107e239","line":218,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"02b8cc16_b88fd02a","line":220,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"3016900f_7bcfd914","line":221,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: E501 line too long (93 \u003e 79 characters)","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"e9a7a1c2879345008f044bc137380656","url":"https://zuul.teim.app/t/main/buildset/e9a7a1c2879345008f044bc137380656","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":"3b29326b0a7504549f074172fe7eac552b0bf0d1","patch_set":11,"id":"76222443_97fa865f","line":253,"updated":"2025-12-12 05:33:33.000000000","message":"Debug print statement in firefox_binary.py\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Print statement in production code\n\n**Suggestion**:\nReplace with LOG.info or LOG.debug for consistent logging","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"ffb355dd65a045b7b8fed6c1e871ce86","url":"https://zuul.opendev.org/t/openstack/buildset/ffb355dd65a045b7b8fed6c1e871ce86","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"62bab240d6ffbbd49d3549616a43f38cf8aa4abe","patch_set":11,"id":"4635869c_b2bd2a94","line":280,"updated":"2025-12-12 06:03:12.000000000","message":"pep8: W391 blank line at end of file","commit_id":"3491c13f0d25d88f2be8fb9b79dc1b1ff759813a"},{"robot_id":"zuul","robot_run_id":"698bf6a8dfd14a1cb3be2b94bbb9cd1e","url":"https://zuul.teim.app/t/main/buildset/698bf6a8dfd14a1cb3be2b94bbb9cd1e","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":"d6359770c5a0e7a32407a1838db6705b964426a4","patch_set":12,"id":"6525cfd1_a5f8f1de","line":70,"updated":"2025-12-12 07:32:05.000000000","message":"Security risk: subprocess.run without shell\u003dTrue protection in firefox_binary.py\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: Potential command injection if Firefox binary path is controlled by attacker\n\n**Priority**: Before merge\n**Why This Matters**: The subprocess.run call executes a path that could be manipulated, potentially leading to arbitrary command execution\n\n**Recommendation**:\nReplace subprocess.run with explicit argument list or add proper path validation. Consider using shlex.quote() if shell execution is necessary.","commit_id":"2ea5eb641643c5fb101872e5bba4142cec5a333d"},{"robot_id":"zuul","robot_run_id":"b0677f3b48284625b3d32403a6573501","url":"https://zuul.teim.app/t/main/buildset/b0677f3b48284625b3d32403a6573501","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":"7828157eed2dbfde1f824f7e3164b66e8eb26927","patch_set":16,"id":"9c5fc992_820a1da6","line":1,"updated":"2025-12-12 14:15:29.000000000","message":"Firefox license header missing Apache License format compliance\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: License header non-compliance could cause legal issues\n\n**Priority**: Before merge\n**Why This Matters**: The firefox_binary.py file has a different license header format that doesn\u0027t match the standard Apache License header used throughout the rest of the codebase\n\n**Recommendation**:\nUpdate the license header in firefox_binary.py to match the standard Apache License header format used in all other files: \u0027Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License...\u0027","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"b0677f3b48284625b3d32403a6573501","url":"https://zuul.teim.app/t/main/buildset/b0677f3b48284625b3d32403a6573501","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":"7828157eed2dbfde1f824f7e3164b66e8eb26927","patch_set":16,"id":"780cb682_6ef6ee50","line":88,"updated":"2025-12-12 14:15:29.000000000","message":"Subprocess call without explicit security context in firefox_binary.py\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: Potential security vulnerability from subprocess execution\n\n**Priority**: Before merge\n**Why This Matters**: The subprocess.Popen call lacks explicit security parameters and has a noqa: S603 comment indicating a known security concern\n\n**Recommendation**:\nAdd explicit security parameters to subprocess.Popen or provide proper security context for the command execution","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"}],"watcher_dashboard/test/integration/test_audit_workflow.py":[{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"4ca4a9ac_21ac86d3","line":169,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: E128 continuation line under-indented for visual indent","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"465cc37a71e04611a932b46ae23f8bde","url":"https://zuul.opendev.org/t/openstack/buildset/465cc37a71e04611a932b46ae23f8bde","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"11d12e409ac1d2b08038dd3028217734ed3aa4ad","patch_set":1,"id":"4f4c8e2c_50892e1d","line":180,"updated":"2025-12-11 06:57:23.000000000","message":"pep8: W391 blank line at end of file","commit_id":"76a613f7a8b5fd361287c2095ef18ef659b762cd"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"1edd337a_660b8ba5","line":39,"updated":"2025-12-11 07:34:47.000000000","message":"Test method names don\u0027t follow test naming conventions\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Test methods should start with \u0027test_\u0027 prefix for proper test discovery\n\n**Suggestion**:\nEnsure all test methods follow the standard \u0027test_*\u0027 naming convention","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"31879e3e43324b0483170a6e205ed675","url":"https://zuul.teim.app/t/main/buildset/31879e3e43324b0483170a6e205ed675","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":"f524147529a41742cd97a8301df268aeea86b333","patch_set":3,"id":"49fa4a1b_baab563c","line":48,"updated":"2025-12-11 07:34:47.000000000","message":"Add page object pattern for better maintainability\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Page objects would reduce code duplication and improve test readability\n\n**Recommendation**:\nCreate page object classes for Audit Template, Audit, and Action Plan pages","commit_id":"03f65008584f298506031182e3c1f8370015555c"},{"robot_id":"zuul","robot_run_id":"46a9265b08e04056aa4720f016c150ac","url":"https://zuul.teim.app/t/main/buildset/46a9265b08e04056aa4720f016c150ac","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":"136cedea2f874e953652734aefe50de063344543","patch_set":5,"id":"42d1aea1_a14e43c9","line":21,"updated":"2025-12-11 09:14:04.000000000","message":"Import organization does not follow OpenStack stdlib→third-party→local ordering in test_audit_workflow.py\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Code readability and OpenStack compliance\n\n**Suggestion**:\nReorder imports: stdlib imports first (time, uuid), then selenium imports, then local imports","commit_id":"bcfacf8923a95cf05586ce17b2d0e080afd055db"},{"robot_id":"zuul","robot_run_id":"9a258fe015c643e982e20f0da6d46d60","url":"https://zuul.teim.app/t/main/buildset/9a258fe015c643e982e20f0da6d46d60","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":"29d0763e32da1c865383618d03316f0ba815200f","patch_set":8,"id":"4105968e_6e50a16b","line":134,"updated":"2025-12-11 14:27:30.000000000","message":"No docstring for _wait_for_action_plan method\n\n**Severity**: WARNING | **Confidence**: 0.7\n\n**Impact**: Missing documentation\n\n**Suggestion**:\nAdd proper docstring with args, returns, and raises sections","commit_id":"b06e833d5607aaffca40920584d34287ef092e7f"},{"robot_id":"zuul","robot_run_id":"d6db2078f0ba4453872420016047d8fc","url":"https://zuul.teim.app/t/main/buildset/d6db2078f0ba4453872420016047d8fc","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":"364f35961b6cc06bd37abdb59e7bb7058a4d950f","patch_set":9,"id":"5341b1ae_4b275c3d","line":107,"updated":"2025-12-11 14:43:20.000000000","message":"Consider using WebDriverWait with expected_conditions more consistently\n\n**Severity**: SUGGESTION | **Confidence**: 0.6\n\n**Benefit**: Would improve test reliability and reduce flakiness\n\n**Recommendation**:\nReplace time.sleep and direct element access with WebDriverWait conditions","commit_id":"fd3c51fbd05b94c1003cd3ce25f1099b7cd20462"},{"robot_id":"zuul","robot_run_id":"f8a996fb271143b9a8f375868a6d475e","url":"https://zuul.teim.app/t/main/buildset/f8a996fb271143b9a8f375868a6d475e","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":"affe2281106c241f994bdbc3cea13aaf3f2572d9","patch_set":17,"id":"d02a62cb_9a673225","line":168,"updated":"2025-12-18 10:11:19.000000000","message":"Complex list comprehension in error handling\n\n**Severity**: WARNING | **Confidence**: 0.6\n\n**Impact**: Reduced readability of error messages\n\n**Suggestion**:\nExtract the list comprehension to a separate variable or function for better readability","commit_id":"f797f58e261c5579c6b4debb52df6660e7201384"}],"watcher_dashboard/test/integration/video_recorder.py":[{"robot_id":"zuul","robot_run_id":"e65358e7cad64c939b8630a8b958f907","url":"https://zuul.opendev.org/t/openstack/buildset/e65358e7cad64c939b8630a8b958f907","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8688d1b8a7f875307139caa510db14a1c55f89af","patch_set":16,"id":"573329fa_e8efae5f","line":57,"updated":"2025-12-12 14:42:19.000000000","message":"pep8: S306 Use of insecure and deprecated function (`mktemp`)","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"e65358e7cad64c939b8630a8b958f907","url":"https://zuul.opendev.org/t/openstack/buildset/e65358e7cad64c939b8630a8b958f907","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8688d1b8a7f875307139caa510db14a1c55f89af","patch_set":16,"id":"5ffdf872_bc28f2b0","line":82,"updated":"2025-12-12 14:42:19.000000000","message":"pep8: S607 Starting a process with a partial executable path","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"e65358e7cad64c939b8630a8b958f907","url":"https://zuul.opendev.org/t/openstack/buildset/e65358e7cad64c939b8630a8b958f907","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8688d1b8a7f875307139caa510db14a1c55f89af","patch_set":16,"id":"b74fe434_cc94a630","line":92,"updated":"2025-12-12 14:42:19.000000000","message":"pep8: S603 `subprocess` call: check for execution of untrusted input","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"b0677f3b48284625b3d32403a6573501","url":"https://zuul.teim.app/t/main/buildset/b0677f3b48284625b3d32403a6573501","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":"7828157eed2dbfde1f824f7e3164b66e8eb26927","patch_set":16,"id":"be1ee3cc_759f533b","line":115,"updated":"2025-12-12 14:15:29.000000000","message":"Missing error handling in video recorder cleanup\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Potential resource leaks if os.kill fails\n\n**Suggestion**:\nAdd proper exception handling around os.kill() call to prevent crashes if process termination fails","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"},{"robot_id":"zuul","robot_run_id":"e65358e7cad64c939b8630a8b958f907","url":"https://zuul.opendev.org/t/openstack/buildset/e65358e7cad64c939b8630a8b958f907","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8688d1b8a7f875307139caa510db14a1c55f89af","patch_set":16,"id":"38811e15_905da926","line":138,"updated":"2025-12-12 14:42:19.000000000","message":"pep8: W391 blank line at end of file","commit_id":"87502fe7c1e606920c8bb45496b92f8d0e54c537"}]}
