From: Simon Glass <simon.glass@canonical.com> This series adds a few more features and tweaks to make pickman work better in practice. The main issue is that the branch logic is not correct, so it selects the wrong branch once one has already been applied. Other improvements in this series: - stop polling if an error occurs - allow using a config file for the gitlab credentials (so we can set up a 'pickman' user), along with a command to check gitlab access - add the Claude log to the merge request, when it responds to comments - maintain comments in a database so we know what was addressed - add a command to figure out how many merges are pending and to show the next 10 - measure test coverage, improve it (not 100%) and add to CI Simon Glass (24): pickman: Add terminal.capture() to tests for silent output pickman: Move imports to top of control.py pickman: Fix pylint warnings pickman: Complete database.py coverage pickman: Add test coverage support pickman: Add tests to improve control.py coverage pickman: Improve testing with write_history() pickman: Extract prepare_apply() from do_apply() pickman: Extract execute_apply() from do_apply() pickman: Use named tuples for MR data pickman: Fix ancestor check in process_merged_mrs pickman: Fix merge selection to follow first-parent chain pickman: Add next-merges command pickman: Fix parse_mr_description to ignore short numbers pickman: Add database tracking for comment processing pickman: Add a way to update a gitlab merge-request pickman: Improve review handling with comment tracking pickman: Add count-merges command pickman: Stop poll on errors pickman: Add config-file support for GitLab token pickman: Add check-gitlab command pickman: Skip push pipeline for MR branches gitlab-ci: Run lab tests automatically for MR pipelines gitlab-ci: Add pickman tests to CI .gitlab-ci.yml | 8 +- tools/pickman/README.rst | 63 +- tools/pickman/__main__.py | 83 +- tools/pickman/agent.py | 19 +- tools/pickman/control.py | 467 ++++++++--- tools/pickman/database.py | 63 +- tools/pickman/ftest.py | 1320 ++++++++++++++++++++++++++++++- tools/pickman/gitlab_api.py | 218 ++++- tools/pickman/requirements.txt | 4 + tools/u_boot_pylib/test_util.py | 8 +- 10 files changed, 2088 insertions(+), 165 deletions(-) create mode 100644 tools/pickman/requirements.txt -- 2.43.0 base-commit: e7f94bcbcb083a5c2f667193069c0bf89dbbd22f branch: cherry2