Bug 2048352 - Migrate code-review bot to push to Github #3490
Draft
nahadji wants to merge 7 commits into
Draft
firefoxci-taskcluster / Code Review Bot checks: unit tests
succeeded
Jul 9, 2026 in 1m 8s
FirefoxCI (pull_request)
Check python code with pytest
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-07-09T15:29:09.272Z
Resolved: 2026-07-09T15:30:17.783Z
Task Execution Time: 1 minute, 8 seconds, 511 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: GmC6jfW4T-S-FxginwdC0g
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
[taskcluster 2026-07-09T15:29:09.329Z] Worker Type (code-analysis-1/linux-gw-gcp) settings:
[taskcluster 2026-07-09T15:29:09.329Z] {
[taskcluster 2026-07-09T15:29:09.329Z] "config": {
[taskcluster 2026-07-09T15:29:09.329Z] "deploymentId": ""
[taskcluster 2026-07-09T15:29:09.329Z] },
[taskcluster 2026-07-09T15:29:09.329Z] "generic-worker": {
[taskcluster 2026-07-09T15:29:09.329Z] "engine": "multiuser",
[taskcluster 2026-07-09T15:29:09.329Z] "go-arch": "amd64",
[taskcluster 2026-07-09T15:29:09.329Z] "go-os": "linux",
[taskcluster 2026-07-09T15:29:09.329Z] "go-version": "go1.22.2",
[taskcluster 2026-07-09T15:29:09.329Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v64.3.0",
[taskcluster 2026-07-09T15:29:09.329Z] "revision": "b66b6614b9b79077f1bfc78f97afb8c25c0c4b30",
[taskcluster 2026-07-09T15:29:09.329Z] "source": "https://github.com/taskcluster/taskcluster/commits/b66b6614b9b79077f1bfc78f97afb8c25c0c4b30",
[taskcluster 2026-07-09T15:29:09.329Z] "version": "64.3.0"
[taskcluster 2026-07-09T15:29:09.329Z] },
[taskcluster 2026-07-09T15:29:09.329Z] "image": "projects/taskcluster-imaging/global/images/gw-fxci-gcp-l1-gui-googlecompute-2024-08-22t22-48-09z",
[taskcluster 2026-07-09T15:29:09.329Z] "instance-id": "2040697157599757177",
[taskcluster 2026-07-09T15:29:09.329Z] "instance-type": "projects/887720501152/machineTypes/c2-standard-4",
[taskcluster 2026-07-09T15:29:09.329Z] "local-ipv4": "10.128.0.54",
[taskcluster 2026-07-09T15:29:09.329Z] "project-id": "fxci-production-level1-workers",
...(883 lines hidden)...
tests/test_index.py::test_index_phabricator PASSED [ 36%]
tests/test_index.py::test_index_from_try PASSED [ 36%]
tests/test_index.py::test_github_index PASSED [ 37%]
tests/test_issues.py::test_allowed_paths PASSED [ 37%]
tests/test_issues.py::test_backend_publication PASSED [ 38%]
tests/test_lint.py::test_flake8_checks PASSED [ 39%]
tests/test_lint.py::test_as_text PASSED [ 39%]
tests/test_lint.py::test_licence_payload PASSED [ 40%]
tests/test_mercurial.py::test_hg_run PASSED [ 40%]
tests/test_mercurial.py::test_robustcheckout PASSED [ 41%]
tests/test_mercurial.py::test_push_to_try PASSED [ 41%]
tests/test_mercurial.py::test_push_to_try_existing_rev PASSED [ 42%]
tests/test_mercurial.py::test_dont_push_skippable_files_to_try PASSED [ 43%]
tests/test_mercurial.py::test_treeherder_link PASSED [ 43%]
tests/test_mercurial.py::test_failure_general PASSED [ 44%]
tests/test_mercurial.py::test_failure_mercurial PASSED [ 44%]
tests/test_mercurial.py::test_push_to_try_nss PASSED [ 45%]
tests/test_mercurial.py::test_crash_utf8_author PASSED [ 45%]
tests/test_mercurial.py::test_unexpected_push_failure PASSED [ 46%]
tests/test_mercurial.py::test_push_failure_max_retries PASSED [ 47%]
tests/test_mercurial.py::test_push_closed_try PASSED [ 47%]
tests/test_mercurial.py::test_get_base_identifier PASSED [ 48%]
tests/test_mercurial.py::test_get_base_identifier_from_git PASSED [ 48%]
tests/test_patch.py::test_publication PASSED [ 49%]
tests/test_phabricator.py::test_backoff PASSED [ 50%]
tests/test_phabricator_analysis.py::test_revision PASSED [ 50%]
tests/test_phabricator_analysis.py::test_workflow PASSED [ 51%]
tests/test_phabricator_analysis.py::test_publish_analysis_phabricator_duplicate_harbormaster_uri PASSED [ 51%]
tests/test_phabricator_analysis.py::test_publish_analysis_phabricator_reraises_other_conduit_errors PASSED [ 52%]
tests/test_phabricator_analysis.py::test_publish_analysis_phabricator_git_failure[False] PASSED [ 52%]
tests/test_phabricator_analysis.py::test_publish_analysis_phabricator_git_failure[True] PASSED [ 53%]
tests/test_phabricator_analysis.py::test_publish_analysis_lando_git_failure PASSED [ 54%]
tests/test_phabricator_analysis.py::test_repository_conf_repo_type PASSED [ 54%]
tests/test_phabricator_analysis.py::test_start_analysis_selects_backend[git-True-GitDeployKey] PASSED [ 55%]
tests/test_phabricator_analysis.py::test_start_analysis_selects_backend[git-True-None] PASSED [ 55%]
tests/test_phabricator_analysis.py::test_start_analysis_selects_backend[hg-False-None] PASSED [ 56%]
tests/test_remote.py::test_no_deps PASSED [ 56%]
tests/test_remote.py::test_baseline PASSED [ 57%]
tests/test_remote.py::test_no_failed PASSED [ 58%]
tests/test_remote.py::test_no_issues PASSED [ 58%]
tests/test_remote.py::test_build_status_fail_on_error PASSED [ 59%]
tests/test_remote.py::test_build_status_pass_on_warning PASSED [ 59%]
tests/test_remote.py::test_unsupported_analyzer PASSED [ 60%]
tests/test_remote.py::test_mozlint_task PASSED [ 60%]
tests/test_remote.py::test_clang_tidy_task PASSED [ 61%]
tests/test_remote.py::test_clang_format_task PASSED [ 62%]
tests/test_remote.py::test_no_tasks PASSED [ 62%]
tests/test_remote.py::test_zero_coverage_option PASSED [ 63%]
tests/test_remote.py::test_external_tidy_task PASSED [ 63%]
tests/test_reporter_builderrors.py::test_builderrors_taskcluster PASSED [ 64%]
tests/test_reporter_builderrors.py::test_builderrors_github PASSED [ 64%]
tests/test_reporter_debug.py::test_publication PASSED [ 65%]
tests/test_reporter_github.py::test_github_review PASSED [ 66%]
tests/test_reporter_github.py::test_github_review_cleanup PASSED [ 66%]
tests/test_reporter_lando.py::test_lando PASSED [ 67%]
tests/test_reporter_mail.py::test_conf PASSED [ 67%]
tests/test_reporter_mail.py::test_mail PASSED [ 68%]
tests/test_reporter_phabricator.py::test_phabricator_clang_tidy PASSED [ 68%]
tests/test_reporter_phabricator.py::test_phabricator_clang_format PASSED [ 69%]
tests/test_reporter_phabricator.py::test_phabricator_mozlint PASSED [ 70%]
tests/test_reporter_phabricator.py::test_phabricator_coverage PASSED [ 70%]
tests/test_reporter_phabricator.py::test_phabricator_no_coverage_on_deleted_file PASSED [ 71%]
tests/test_reporter_phabricator.py::test_phabricator_clang_tidy_and_coverage PASSED [ 71%]
tests/test_reporter_phabricator.py::test_phabricator_analyzers[analyzers_skipped0-valid_issues0-valid_patches0] PASSED [ 72%]
tests/test_reporter_phabricator.py::test_phabricator_analyzers[analyzers_skipped1-valid_issues1-valid_patches1] PASSED [ 72%]
tests/test_reporter_phabricator.py::test_phabricator_analyzers[analyzers_skipped2-valid_issues2-valid_patches2] PASSED [ 73%]
tests/test_reporter_phabricator.py::test_phabricator_clang_tidy_build_error PASSED [ 74%]
tests/test_reporter_phabricator.py::test_full_file PASSED [ 74%]
tests/test_reporter_phabricator.py::test_task_failures PASSED [ 75%]
tests/test_reporter_phabricator.py::test_extra_errors PASSED [ 75%]
tests/test_reporter_phabricator.py::test_phabricator_notices PASSED [ 76%]
tests/test_reporter_phabricator.py::test_phabricator_tgdiff PASSED [ 77%]
tests/test_reporter_phabricator.py::test_phabricator_external_tidy PASSED [ 77%]
tests/test_reporter_phabricator.py::test_phabricator_newer_diff PASSED [ 78%]
tests/test_reporter_phabricator.py::test_phabricator_former_diff_comparison PASSED [ 78%]
tests/test_reporter_phabricator.py::test_phabricator_before_after_comment PASSED [ 79%]
tests/test_revisions.py::test_phabricator PASSED [ 79%]
tests/test_revisions.py::test_autoland PASSED [ 80%]
tests/test_revisions.py::test_clang_files PASSED [ 81%]
tests/test_revisions.py::test_analyze_patch PASSED [ 81%]
tests/test_revisions.py::test_bugzilla_id PASSED [ 82%]
tests/test_revisions.py::test_revision_before_after PASSED [ 82%]
tests/test_stats.py::test_base_stats PASSED [ 83%]
tests/test_tgdiff_task.py::test_load_artifacts_no_summary PASSED [ 83%]
tests/test_tgdiff_task.py::test_load_artifacts_ok_summary PASSED [ 84%]
tests/test_tgdiff_task.py::test_load_artifacts_warning_summary PASSED [ 85%]
tests/test_tgdiff_task.py::test_load_artifacts_warning_summary_comm PASSED [ 85%]
tests/test_tools.py::test_taskcluster_service PASSED [ 86%]
tests/test_tools.py::test_remove_color_codes PASSED [ 86%]
tests/test_workflow.py::test_build_task[source-test-clang-tidy-ClangTidyTask-False] PASSED [ 87%]
tests/test_workflow.py::test_build_task[source-test-clang-tidy-ClangTidyTask-True] PASSED [ 87%]
tests/test_workflow.py::test_build_task[source-test-clang-external-ExternalTidyTask-False] PASSED [ 88%]
tests/test_workflow.py::test_build_task[source-test-clang-external-ExternalTidyTask-True] PASSED [ 89%]
tests/test_workflow.py::test_build_task[source-test-mozlint-eslint-MozLintTask-False] PASSED [ 89%]
tests/test_workflow.py::test_build_task[source-test-mozlint-eslint-MozLintTask-True] PASSED [ 90%]
tests/test_workflow.py::test_build_task[source-test-mozlint-whatever-MozLintTask-False] PASSED [ 90%]
tests/test_workflow.py::test_build_task[source-test-mozlint-whatever-MozLintTask-True] PASSED [ 91%]
tests/test_workflow.py::test_build_task[source-test-clang-format-ClangFormatTask-False] PASSED [ 91%]
tests/test_workflow.py::test_build_task[source-test-clang-format-ClangFormatTask-True] PASSED [ 92%]
tests/test_workflow.py::test_build_task[source-test-taskgraph-diff-TaskGraphDiffTask-False] PASSED [ 93%]
tests/test_workflow.py::test_build_task[source-test-taskgraph-diff-TaskGraphDiffTask-True] PASSED [ 93%]
tests/test_workflow.py::test_build_task[source-test-unsupported-None-False] PASSED [ 94%]
tests/test_workflow.py::test_build_task[source-test-unsupported-None-True] PASSED [ 94%]
tests/test_workflow.py::test_on_production PASSED [ 95%]
tests/test_workflow.py::test_before_after PASSED [ 95%]
tests/test_workflow.py::test_publish_link_duplicate_harbormaster_uri PASSED [ 96%]
tests/test_workflow.py::test_publish_link_reraises_other_conduit_errors PASSED [ 97%]
tests/test_workflow.py::test_publish_link PASSED [ 97%]
tools/test_validator.py::test_top_struct PASSED [ 98%]
tools/test_validator.py::test_dict_struct PASSED [ 98%]
tools/test_validator.py::test_paths PASSED [ 99%]
tools/test_validator.py::test_issues PASSED [100%]
=============================== warnings summary ===============================
../../usr/local/lib/python3.12/site-packages/code_review_bot/config.py:14
/usr/local/lib/python3.12/site-packages/code_review_bot/config.py:14: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
../../usr/local/lib/python3.12/site-packages/influxdb/line_protocol.py:16
/usr/local/lib/python3.12/site-packages/influxdb/line_protocol.py:16: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
EPOCH = UTC.localize(datetime.utcfromtimestamp(0))
tests/test_artifacts.py:10
/src/bot/tests/test_artifacts.py:10: PytestCollectionWarning: cannot collect test class 'TestTask' because it has a __init__ constructor (from: bot/tests/test_artifacts.py)
class TestTask(AnalysisTask):
bot/tests/test_default.py: 10 warnings
bot/tests/test_remote.py: 109 warnings
bot/tests/test_reporter_phabricator.py: 36 warnings
bot/tests/test_revisions.py: 2 warnings
bot/tests/test_stats.py: 1 warning
bot/tests/test_workflow.py: 2 warnings
/usr/local/lib/python3.12/site-packages/code_review_bot/stats.py:56: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
"time": datetime.utcnow().isoformat(),
bot/tests/test_index.py::test_taskcluster_index
bot/tests/test_index.py::test_index_autoland
bot/tests/test_index.py::test_index_phabricator
bot/tests/test_index.py::test_index_from_try
bot/tests/test_index.py::test_github_index
/usr/local/lib/python3.12/site-packages/code_review_bot/workflow.py:495: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
now = datetime.utcnow()
bot/tests/test_mercurial.py::test_unexpected_push_failure
bot/tests/test_mercurial.py::test_push_failure_max_retries
bot/tests/test_mercurial.py::test_push_failure_max_retries
bot/tests/test_mercurial.py::test_push_closed_try
/usr/local/lib/python3.12/site-packages/code_review_bot/mercurial.py:572: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
start = datetime.utcnow()
bot/tests/test_mercurial.py::test_push_closed_try
bot/tests/test_mercurial.py::test_push_closed_try
/usr/local/lib/python3.12/site-packages/code_review_bot/mercurial.py:574: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
if (datetime.utcnow() - start).seconds >= TRY_STATUS_MAX_WAIT:
bot/tests/test_phabricator_analysis.py::test_publish_analysis_phabricator_duplicate_harbormaster_uri
bot/tests/test_phabricator_analysis.py::test_publish_analysis_phabricator_reraises_other_conduit_errors
bot/tests/test_workflow.py::test_publish_link_duplicate_harbormaster_uri
bot/tests/test_workflow.py::test_publish_link_reraises_other_conduit_errors
/usr/local/lib/python3.12/site-packages/libmozdata/phabricator.py:187: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
logger.warn(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
====================== 174 passed, 178 warnings in 13.36s ======================
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
2026-07-09 15:30:16 [info ] Removed ssh key
[taskcluster 2026-07-09T15:30:17.344Z] Exit Code: 0
[taskcluster 2026-07-09T15:30:17.344Z] User Time: 3.171156s
[taskcluster 2026-07-09T15:30:17.344Z] Kernel Time: 1.0288s
[taskcluster 2026-07-09T15:30:17.344Z] Wall Time: 1m6.987641103s
[taskcluster 2026-07-09T15:30:17.344Z] Result: SUCCEEDED
[taskcluster 2026-07-09T15:30:17.344Z] === Task Finished ===
[taskcluster 2026-07-09T15:30:17.344Z] Task Duration: 1m6.988253393s
[taskcluster 2026-07-09T15:30:17.446Z] Uploading link artifact public/logs/live.log to artifact public/logs/live_backing.log with expiry 2027-07-09T16:25:42.178Z
Loading