Skip to content

Move email notification from the listener to the agents - #6708

Open
evgenyrp wants to merge 10 commits into
mozilla:masterfrom
evgenyrp:email-action-6664
Open

Move email notification from the listener to the agents#6708
evgenyrp wants to merge 10 commits into
mozilla:masterfrom
evgenyrp:email-action-6664

hackbot-runtime: read the email's patch from the run artifact

6d726e4
Select commit
Loading
Failed to load commit list.
Community-TC Integration / bugbug libs tests succeeded Sep 2, 2026 in 1m 8s

Community-TC (pull_request)

bugbug libs tests

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-09-02T21:27:22.497Z
Resolved: 2026-09-02T21:28:29.800Z
Task Execution Time: 1 minute, 7 seconds, 303 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: MHTquzwbTSiD4RlFcwdRFw
RunId: 0

Artifacts

- public/logs/live_backing.log (423 KB)
- public/logs/live.log


[taskcluster 2026-09-02T21:27:22.604Z] Worker Type (proj-bugbug/compute-smaller) settings:
[taskcluster 2026-09-02T21:27:22.604Z]   {
[taskcluster 2026-09-02T21:27:22.604Z]     "generic-worker": {
[taskcluster 2026-09-02T21:27:22.604Z]       "config": {
[taskcluster 2026-09-02T21:27:22.604Z]         "capacity": 1,
[taskcluster 2026-09-02T21:27:22.604Z]         "headlessTasks": false
[taskcluster 2026-09-02T21:27:22.604Z]       },
[taskcluster 2026-09-02T21:27:22.604Z]       "engine": "multiuser",
[taskcluster 2026-09-02T21:27:22.604Z]       "go-arch": "amd64",
[taskcluster 2026-09-02T21:27:22.604Z]       "go-os": "linux",
[taskcluster 2026-09-02T21:27:22.604Z]       "go-version": "go1.27.0",
[taskcluster 2026-09-02T21:27:22.604Z]       "release": "https://github.com/taskcluster/taskcluster/releases/tag/v108.0.0",
[taskcluster 2026-09-02T21:27:22.604Z]       "revision": "ae7697a5449cc29e7d41ae62ef6e5f725b929ed3",
[taskcluster 2026-09-02T21:27:22.604Z]       "source": "https://github.com/taskcluster/taskcluster/commits/ae7697a5449cc29e7d41ae62ef6e5f725b929ed3",
[taskcluster 2026-09-02T21:27:22.604Z]       "version": "108.0.0"
[taskcluster 2026-09-02T21:27:22.604Z]     },
[taskcluster 2026-09-02T21:27:22.604Z]     "image": "projects/taskcluster-imaging/global/images/generic-worker-ubuntu-24-04-10c009c7a14346ef8938",
[taskcluster 2026-09-02T21:27:22.604Z]     "instance-id": "2535375139801213638",
[taskcluster 2026-09-02T21:27:22.604Z]     "instance-type": "projects/757942385826/machineTypes/n2-standard-2",
[taskcluster 2026-09-02T21:27:22.604Z]     "local-ipv4": "10.142.0.145",

...(81 lines hidden)...

tests/test_email_actions.py ...............                              [ 34%]
tests/test_email_handler.py .............                                [ 38%]
tests/test_phabricator_actions.py ..................                     [ 44%]
tests/test_phabricator_handler.py ...............                        [ 48%]
tests/test_providers.py ....                                             [ 50%]
tests/test_recorder.py ..............                                    [ 54%]
tests/test_revision.py ....                                              [ 55%]
tests/test_runtime.py ...............                                    [ 60%]
tests/test_searchfox.py .................                                [ 65%]
tests/test_slack_actions.py .........                                    [ 68%]
tests/test_slack_handler.py ....                                         [ 69%]
tests/test_source.py .....                                               [ 71%]
tests/test_testrail_action.py ...........                                [ 74%]
tests/test_testrail_handler.py ............                              [ 78%]
tests/test_tracing.py ........                                           [ 81%]
tests/test_try_server_actions.py ......................                  [ 88%]
tests/test_try_server_handler.py .....................                   [ 94%]
tests/test_wandb_wif.py .................                                [100%]

=============================== warnings summary ===============================
tests/test_phabricator_handler.py::test_repository_phid_looks_up_by_short_name
  /bugbug/libs/hackbot-runtime/tests/test_phabricator_handler.py:458: AlruCacheLoopResetWarning: alru_cache detected event loop change and auto-cleared stale entries. This is safe but unusual outside of tests (pytest-anyio, etc.).
    assert await phabricator_handler._repository_phid() == "PHID-MC"

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================ tests coverage ================================
_______________ coverage: platform linux, python 3.12.14-final-0 _______________

Name                                                                       Stmts   Miss  Cover
----------------------------------------------------------------------------------------------
/bugbug/libs/agent-tools/agent_tools/__init__.py                               2      0   100%
/bugbug/libs/agent-tools/agent_tools/bugzilla.py                              83     43    48%
/bugbug/libs/agent-tools/agent_tools/claude_sdk.py                            22      8    64%
/bugbug/libs/agent-tools/agent_tools/firefox/__init__.py                      40      9    78%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/__init__.py                 5      0   100%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/bootstrap_firefox.py       16     12    25%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/build_firefox.py           29     24    17%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/evaluate_testcase.py      111     90    19%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/js_shell_evaluator.py      45     37    18%
/bugbug/libs/agent-tools/agent_tools/mozilla_vcs.py                           48     48     0%
/bugbug/libs/agent-tools/agent_tools/phabricator.py                           92      4    96%
/bugbug/libs/agent-tools/agent_tools/registry.py                              37      0   100%
/bugbug/libs/agent-tools/agent_tools/searchfox.py                             59     59     0%
hackbot_runtime/__init__.py                                                   10      0   100%
hackbot_runtime/actions/__init__.py                                            4      0   100%
hackbot_runtime/actions/bugzilla.py                                           43      0   100%
hackbot_runtime/actions/claude_sdk.py                                         21      1    95%
hackbot_runtime/actions/email.py                                              43      0   100%
hackbot_runtime/actions/handlers/__init__.py                                   4      0   100%
hackbot_runtime/actions/handlers/base.py                                      27      0   100%
hackbot_runtime/actions/handlers/bugzilla_handler.py                         118     21    82%
hackbot_runtime/actions/handlers/email_handler.py                             56      1    98%
hackbot_runtime/actions/handlers/phabricator_handler.py                      125      8    94%
hackbot_runtime/actions/handlers/registry.py                                  11      0   100%
hackbot_runtime/actions/handlers/slack_handler.py                             24      1    96%
hackbot_runtime/actions/handlers/testrail_handler.py                          99      4    96%
hackbot_runtime/actions/handlers/try_server_handler.py                        60      0   100%
hackbot_runtime/actions/phabricator.py                                        30      0   100%
hackbot_runtime/actions/recorder.py                                           31      0   100%
hackbot_runtime/actions/slack.py                                              23      0   100%
hackbot_runtime/actions/testrail.py                                           76      3    96%
hackbot_runtime/actions/try_server.py                                         33      0   100%
hackbot_runtime/anthropic_wif.py                                              91      6    93%
hackbot_runtime/artifacts.py                                                  23      1    96%
hackbot_runtime/changes.py                                                   109     17    84%
hackbot_runtime/claude.py                                                    102     46    55%
hackbot_runtime/config.py                                                     20      0   100%
hackbot_runtime/context.py                                                   118      9    92%
hackbot_runtime/errors.py                                                      1      0   100%
hackbot_runtime/providers.py                                                  16      0   100%
hackbot_runtime/results.py                                                     4      0   100%
hackbot_runtime/revision.py                                                   21      0   100%
hackbot_runtime/runtime.py                                                   116     29    75%
hackbot_runtime/searchfox.py                                                  71      3    96%
hackbot_runtime/source.py                                                     37      4    89%
hackbot_runtime/tracing.py                                                    33      3    91%
hackbot_runtime/uploader.py                                                   26     16    38%
hackbot_runtime/wandb_wif.py                                                  91      6    93%
----------------------------------------------------------------------------------------------
TOTAL                                                                       2306    513    78%
======================= 319 passed, 1 warning in 10.02s ========================
+ cd ../lando-client
+ uv run --locked --with pytest==9.1.0 --with pytest-cov==7.1.0 --with pytest-asyncio==1.4.0 pytest --cov=lando_client --cov-append tests/
⠋ Resolving dependencies...                                                     
⠙ Resolving dependencies...                                                     
⠋ Resolving dependencies...                                                     
⠙ Resolving dependencies...                                                     
⠙ pytest==9.1.0                                                                 
⠙ pytest-cov==7.1.0                                                             
⠙ pytest-asyncio==1.4.0                                                         
⠙ iniconfig==2.3.0                                                              
⠙ packaging==26.3                                                               
⠙ pluggy==1.6.0                                                                 
⠙ pygments==2.20.0                                                              
⠙ coverage==7.15.4                                                              
⠙ coverage==7.15.4                                                              
⠙ typing-extensions==4.16.0                                                     
⠙ typing-extensions==4.16.0                                                     
⠙                                                                               
============================= test session starts ==============================
platform linux -- Python 3.12.14, pytest-9.1.0, pluggy-1.6.0
rootdir: /bugbug/libs/lando-client
configfile: pyproject.toml
plugins: cov-7.1.0, asyncio-1.4.0, anyio-4.14.2
asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collecting ... 
collected 15 items                                                             

tests/test_client.py ...............                                     [100%]

================================ tests coverage ================================
_______________ coverage: platform linux, python 3.12.14-final-0 _______________

Name                                                                                   Stmts   Miss  Cover
----------------------------------------------------------------------------------------------------------
/bugbug/libs/agent-tools/agent_tools/__init__.py                                           2      0   100%
/bugbug/libs/agent-tools/agent_tools/bugzilla.py                                          83     43    48%
/bugbug/libs/agent-tools/agent_tools/claude_sdk.py                                        22      8    64%
/bugbug/libs/agent-tools/agent_tools/firefox/__init__.py                                  40      9    78%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/__init__.py                             5      0   100%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/bootstrap_firefox.py                   16     12    25%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/build_firefox.py                       29     24    17%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/evaluate_testcase.py                  111     90    19%
/bugbug/libs/agent-tools/agent_tools/firefox/tools/js_shell_evaluator.py                  45     37    18%
/bugbug/libs/agent-tools/agent_tools/mozilla_vcs.py                                       48     48     0%
/bugbug/libs/agent-tools/agent_tools/phabricator.py                                       92      4    96%
/bugbug/libs/agent-tools/agent_tools/registry.py                                          37      0   100%
/bugbug/libs/agent-tools/agent_tools/searchfox.py                                         59     59     0%
/bugbug/libs/hackbot-runtime/hackbot_runtime/__init__.py                                  10      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/__init__.py                           4      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/bugzilla.py                          43      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/claude_sdk.py                        21      1    95%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/email.py                             43      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/__init__.py                  4      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/base.py                     27      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/bugzilla_handler.py        118     21    82%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/email_handler.py            56      1    98%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/phabricator_handler.py     125      8    94%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/registry.py                 11      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/slack_handler.py            24      1    96%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/testrail_handler.py         99      4    96%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/handlers/try_server_handler.py       60      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/phabricator.py                       30      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/recorder.py                          31      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/slack.py                             23      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/testrail.py                          76      3    96%
/bugbug/libs/hackbot-runtime/hackbot_runtime/actions/try_server.py                        33      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/anthropic_wif.py                             91      6    93%
/bugbug/libs/hackbot-runtime/hackbot_runtime/artifacts.py                                 23      1    96%
/bugbug/libs/hackbot-runtime/hackbot_runtime/changes.py                                  109     17    84%
/bugbug/libs/hackbot-runtime/hackbot_runtime/claude.py                                   102     46    55%
/bugbug/libs/hackbot-runtime/hackbot_runtime/config.py                                    20      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/context.py                                  118      9    92%
/bugbug/libs/hackbot-runtime/hackbot_runtime/errors.py                                     1      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/providers.py                                 16      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/results.py                                    4      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/revision.py                                  21      0   100%
/bugbug/libs/hackbot-runtime/hackbot_runtime/runtime.py                                  116     29    75%
/bugbug/libs/hackbot-runtime/hackbot_runtime/searchfox.py                                 71      3    96%
/bugbug/libs/hackbot-runtime/hackbot_runtime/source.py                                    37      4    89%
/bugbug/libs/hackbot-runtime/hackbot_runtime/tracing.py                                   33      3    91%
/bugbug/libs/hackbot-runtime/hackbot_runtime/uploader.py                                  26     16    38%
/bugbug/libs/hackbot-runtime/hackbot_runtime/wandb_wif.py                                 91      6    93%
lando_client/__init__.py                                                                   3      0   100%
lando_client/client.py                                                                    43      0   100%
lando_client/config.py                                                                    28      2    93%
----------------------------------------------------------------------------------------------------------
TOTAL                                                                                   2380    515    78%
============================== 15 passed in 0.97s ==============================
+ cd ../..
+ bash /dev/fd/63
++ curl -s https://codecov.io/bash

  _____          _
 / ____|        | |
| |     ___   __| | ___  ___ _____   __
| |    / _ \ / _` |/ _ \/ __/ _ \ \ / /
| |___| (_) | (_| |  __/ (_| (_) \ V /
 \_____\___/ \__,_|\___|\___\___/ \_/
                              Bash-1.0.6


==> git version 2.47.3 found
==> curl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.6 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.8.0 librtmp/2.3 OpenLDAP/2.6.10
Release-Date: 2025-06-04, security patched: 8.14.1-2+deb13u4
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
x> No CI provider detected.
    Testing inside Docker? http://docs.codecov.io/docs/testing-with-docker
    Testing with Tox? https://docs.codecov.io/docs/python#section-testing-with-tox
    current dir:  /bugbug
    project root: .
--> token set from env
    Yaml found at: .codecov.yml
curl: option : blank argument where content is expected
curl: try 'curl --help' or 'curl --manual' for more information
curl: option : blank argument where content is expected
curl: try 'curl --help' or 'curl --manual' for more information
curl: option : blank argument where content is expected
curl: try 'curl --help' or 'curl --manual' for more information
==> Running gcov in . (disable via -X gcov)
==> Python coveragepy not found
==> Searching for coverage reports in:
    + .
--> No coverage report found.
    Please visit http://docs.codecov.io/docs/supported-languages
[taskcluster 2026-09-02T21:28:28.822Z]                        Exit Code: 0
[taskcluster 2026-09-02T21:28:28.822Z]                        User Time: 47.631ms
[taskcluster 2026-09-02T21:28:28.822Z]                      Kernel Time: 45.514ms
[taskcluster 2026-09-02T21:28:28.822Z]                        Wall Time: 40.274512693s
[taskcluster 2026-09-02T21:28:28.822Z]  Average Available System Memory: 6.37 GiB
[taskcluster 2026-09-02T21:28:28.822Z]       Average System Memory Used: 1.38 GiB
[taskcluster 2026-09-02T21:28:28.822Z]          Peak System Memory Used: 1.48 GiB
[taskcluster 2026-09-02T21:28:28.822Z]              Total System Memory: 7.75 GiB
[taskcluster 2026-09-02T21:28:28.822Z]                           Result: SUCCEEDED
[taskcluster 2026-09-02T21:28:28.823Z] === Task Finished ===
[taskcluster 2026-09-02T21:28:28.823Z] Task Duration: 40.276285273s