Allow loading external content during review #6086
Draft
Community-TC Integration / bugbug lint
failed
Jun 1, 2026 in 8m 42s
Community-TC (pull_request)
bugbug lint
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-06-01T17:15:13.383Z
Resolved: 2026-06-01T17:23:55.176Z
Task Execution Time: 8 minutes, 41 seconds, 793 milliseconds
Task Status: failed
Reason Resolved: failed
TaskId: YtHZzhVHQ9yfLl9cd07ikQ
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
[taskcluster 2026-06-01T17:15:13.475Z] Worker Type (proj-bugbug/batch) settings:
[taskcluster 2026-06-01T17:15:13.475Z] {
[taskcluster 2026-06-01T17:15:13.475Z] "generic-worker": {
[taskcluster 2026-06-01T17:15:13.475Z] "config": {
[taskcluster 2026-06-01T17:15:13.475Z] "capacity": 1,
[taskcluster 2026-06-01T17:15:13.475Z] "headlessTasks": false
[taskcluster 2026-06-01T17:15:13.475Z] },
[taskcluster 2026-06-01T17:15:13.475Z] "engine": "multiuser",
[taskcluster 2026-06-01T17:15:13.475Z] "go-arch": "amd64",
[taskcluster 2026-06-01T17:15:13.475Z] "go-os": "linux",
[taskcluster 2026-06-01T17:15:13.475Z] "go-version": "go1.26.2",
[taskcluster 2026-06-01T17:15:13.475Z] "release": "https://github.com/taskcluster/taskcluster/releases/tag/v100.0.1",
[taskcluster 2026-06-01T17:15:13.475Z] "revision": "fcf9d8ed582ed8de3d1cdb8f4f91ccec93b7803c",
[taskcluster 2026-06-01T17:15:13.475Z] "source": "https://github.com/taskcluster/taskcluster/commits/fcf9d8ed582ed8de3d1cdb8f4f91ccec93b7803c",
[taskcluster 2026-06-01T17:15:13.475Z] "version": "100.0.1"
[taskcluster 2026-06-01T17:15:13.475Z] },
[taskcluster 2026-06-01T17:15:13.475Z] "image": "projects/community-tc-workers/global/images/generic-worker-ubuntu-24-04-bngpghpfficdxtlhnusi",
[taskcluster 2026-06-01T17:15:13.475Z] "instance-id": "1820136787216958324",
[taskcluster 2026-06-01T17:15:13.475Z] "instance-type": "projects/757942385826/machineTypes/n2-standard-2",
[taskcluster 2026-06-01T17:15:13.475Z] "local-ipv4": "10.142.0.31",
...(9050 lines hidden)...
⠸ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠼ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠴ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠦ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠧ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠇ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠋ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠙ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠹ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠸ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠼ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠴ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠦ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠧ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠇ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠋ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠙ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠹ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠸ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠼ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠴ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠦ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠧ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠇ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠋ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠙ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠹ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠸ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠼ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠴ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠦ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠧ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠇ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠋ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠙ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠹ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠸ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠼ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠴ Preparing packages... (218/219)
Building llama-cpp-python==0.3.23
⠦ Preparing packages... (218/219)
Built llama-cpp-python==0.3.23
⠦ Preparing packages... (218/219)
⠦ (219/219)
░░░░░░░░░░░░░░░░░░░░ [0/0] Installing wheels...
░░░░░░░░░░░░░░░░░░░░ [0/219] Installing wheels...
░░░░░░░░░░░░░░░░░░░░ [0/219] lru-dict==1.4.1
░░░░░░░░░░░░░░░░░░░░ [1/219] lru-dict==1.4.1
░░░░░░░░░░░░░░░░░░░░ [1/219] langchain-text-splitters==1.1.2
░░░░░░░░░░░░░░░░░░░░ [2/219] langchain-text-splitters==1.1.2
░░░░░░░░░░░░░░░░░░░░ [2/219] pydantic==2.12.5
░░░░░░░░░░░░░░░░░░░░ [3/219] pydantic==2.12.5
░░░░░░░░░░░░░░░░░░░░ [3/219] executing==2.2.1
░░░░░░░░░░░░░░░░░░░░ [4/219] executing==2.2.1
░░░░░░░░░░░░░░░░░░░░ [4/219] tomlkit==0.14.0
░░░░░░░░░░░░░░░░░░░░ [5/219] tomlkit==0.14.0
░░░░░░░░░░░░░░░░░░░░ [5/219] graphviz==0.21
░░░░░░░░░░░░░░░░░░░░ [6/219] graphviz==0.21
░░░░░░░░░░░░░░░░░░░░ [6/219] langchain-core==1.4.0
░░░░░░░░░░░░░░░░░░░░ [7/219] langchain-core==1.4.0
░░░░░░░░░░░░░░░░░░░░ [7/219] pyjwt==2.12.1
░░░░░░░░░░░░░░░░░░░░ [8/219] pyjwt==2.12.1
░░░░░░░░░░░░░░░░░░░░ [8/219] docstring-parser==0.17.0
░░░░░░░░░░░░░░░░░░░░ [9/219] docstring-parser==0.17.0
█████░░░░░░░░░░░░░░░ [56/219] sse-starlette==3.3.4
█████████░░░░░░░░░░░ [107/219] anthropic==0.88.0
██████████░░░░░░░░░░ [118/219] cffi==2.0.0
████████████░░░░░░░░ [141/219] langgraph==1.1.3
██████████████░░░░░░ [160/219] pyasn1-modules==0.4.2
█████████████████░░░ [197/219] requests-toolbelt==1.0.0
███████████████████░ [209/219] numpy==2.4.6
███████████████████░ [211/219] botocore==1.42.81
███████████████████░ [212/219] botocore==1.42.81
Installed 219 packages in 496ms
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier:prettier@4.0.0-alpha.8.
[INFO] Initializing environment for https://github.com/astral-sh/ruff-pre-commit.
[INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Initializing environment for https://github.com/codespell-project/codespell.
[INFO] Initializing environment for https://github.com/marco-c/taskcluster_yml_validator.
[INFO] Initializing environment for https://github.com/asottile/yesqa.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy:types-pkg_resources==0.1.2,types-python-dateutil==2.9.0.20260518,types-PyYAML==6.0.12.20260518,types-orjson==3.6.2,types-tabulate==0.10.0.20260508,types-requests==2.33.0.20260518.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy:types-pkg_resources==0.1.2,types-requests==2.33.0.20260518,types-Flask==1.1.6,types-redis==4.6.0.20241004,types-python-dateutil==2.9.0.20260518,types-orjson==3.6.2,types-tabulate==0.10.0.20260508.
[INFO] Installing environment for https://github.com/pre-commit/mirrors-prettier.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/astral-sh/ruff-pre-commit.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/codespell-project/codespell.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/marco-c/taskcluster_yml_validator.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/asottile/yesqa.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
prettier.................................................................Failed
- hook id: prettier
- files were modified by this hook
bugbug/tools/code_review/prompts/first_message.md
docs/code-review-skills.md
ruff check...............................................................Passed
ruff format..............................................................Failed
- hook id: ruff-format
- files were modified by this hook
warning: Selection `CPY` has no effect because preview is not enabled.
1 file reformatted, 245 files left unchanged
check python ast.........................................................Passed
check docstring is first.................................................Passed
check that executables have shebangs.....................................Passed
check for merge conflicts................................................Passed
check for broken symlinks............................(no files to check)Skipped
debug statements (python)................................................Passed
trim trailing whitespace.................................................Passed
check yaml...............................................................Passed
mixed line ending........................................................Passed
python tests naming......................................................Passed
check json...............................................................Passed
check vcs permalinks.....................................................Passed
codespell................................................................Passed
taskcluster_yml..........................................................Passed
Strip unnecessary `# noqa`s..............................................Passed
mypy-bugbug..............................................................Passed
mypy-bugbug-http.........................................................Passed
Check for useless excludes...............................................Passed
pre-commit hook(s) made changes.
If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`.
To run `pre-commit` as part of git workflow, use `pre-commit install`.
All changes made by hooks:
diff --git a/bugbug/tools/code_review/data_types.py b/bugbug/tools/code_review/data_types.py
index 3b2c48e4..f16fc0f4 100644
--- a/bugbug/tools/code_review/data_types.py
+++ b/bugbug/tools/code_review/data_types.py
@@ -112,6 +112,7 @@ class LocalPatch(Patch):
m3 = _DATE_RE.search(commit_message)
if m3:
from email.utils import parsedate_to_datetime
+
try:
self._date = parsedate_to_datetime(m3.group(1))
except Exception:
@@ -193,7 +194,9 @@ class ExternalContent(BaseModel):
name: str = Field(description="A unique identifier for this content item.")
url: str = Field(description="HTTPS URL of the file to fetch.")
- description: str = Field(description="Short description of what this content provides.")
+ description: str = Field(
+ description="Short description of what this content provides."
+ )
_cached_body: str | None = PrivateAttr(default=None)
diff --git a/bugbug/tools/code_review/prompts/first_message.md b/bugbug/tools/code_review/prompts/first_message.md
index 848897fb..a20a5cac 100644
--- a/bugbug/tools/code_review/prompts/first_message.md
+++ b/bugbug/tools/code_review/prompts/first_message.md
@@ -5,7 +5,6 @@ Here is a summary of the patch:
</patch_summary>
{external_context}
-
Here are examples of good code review comments to guide your style and approach:
<examples>
@@ -13,7 +12,6 @@ Here are examples of good code review comments to guide your style and approach:
{approved_examples}
</examples>
-
Here is the patch you need to review:
<patch>
diff --git a/docs/code-review-skills.md b/docs/code-review-skills.md
index cabbf3ab..ab0cbfd9 100644
--- a/docs/code-review-skills.md
+++ b/docs/code-review-skills.md
@@ -248,17 +248,17 @@ validates these field names and their value types. At runtime, only
`bugzilla.component` currently affects matching; the other fields are accepted
by the schema for forward-compatible rule files but fail closed.
-| Namespace | Field | Type | Runtime behavior |
-| ---------- | ------------------- | --------------- | -------------------------------------------------------------- |
-| `bugzilla` | `component` | list of strings | Matches exact `Product::Component` from Bugzilla |
-| `bugzilla` | `product` | list of strings | Parsed and validated; currently fails closed |
-| `bugzilla` | `keywords` | list of strings | Parsed and validated; currently fails closed |
-| `bugzilla` | `severity` | list of strings | Parsed and validated; currently fails closed |
-| `review` | `author` | list of strings | Parsed and validated; currently fails closed |
-| `review` | `reviewer` | list of strings | Parsed and validated; currently fails closed |
-| `review` | `blocking_reviewer` | list of strings | Parsed and validated; currently fails closed |
-| `patch` | `repository` | list of strings | Parsed and validated; currently fails closed |
-| `patch` | `is_backport` | boolean | Parsed and validated; currently fails closed |
+| Namespace | Field | Type | Runtime behavior |
+| ---------- | ------------------- | --------------- | ------------------------------------------------ |
+| `bugzilla` | `component` | list of strings | Matches exact `Product::Component` from Bugzilla |
+| `bugzilla` | `product` | list of strings | Parsed and validated; currently fails closed |
+| `bugzilla` | `keywords` | list of strings | Parsed and validated; currently fails closed |
+| `bugzilla` | `severity` | list of strings | Parsed and validated; currently fails closed |
+| `review` | `author` | list of strings | Parsed and validated; currently fails closed |
+| `review` | `reviewer` | list of strings | Parsed and validated; currently fails closed |
+| `review` | `blocking_reviewer` | list of strings | Parsed and validated; currently fails closed |
+| `patch` | `repository` | list of strings | Parsed and validated; currently fails closed |
+| `patch` | `is_backport` | boolean | Parsed and validated; currently fails closed |
When review metadata matching is wired up, `reviewer` should match both
blocking and non-blocking reviewers. Use `blocking_reviewer` only when the rule
[taskcluster 2026-06-01T17:23:52.500Z] Exit Code: 1
[taskcluster 2026-06-01T17:23:52.500Z] User Time: 151.815ms
[taskcluster 2026-06-01T17:23:52.500Z] Kernel Time: 177.679ms
[taskcluster 2026-06-01T17:23:52.500Z] Wall Time: 8m15.434285069s
[taskcluster 2026-06-01T17:23:52.500Z] Average Available System Memory: 5.87 GiB
[taskcluster 2026-06-01T17:23:52.500Z] Average System Memory Used: 1.88 GiB
[taskcluster 2026-06-01T17:23:52.500Z] Peak System Memory Used: 2.93 GiB
[taskcluster 2026-06-01T17:23:52.500Z] Total System Memory: 7.75 GiB
[taskcluster 2026-06-01T17:23:52.500Z] Result: FAILED
[taskcluster 2026-06-01T17:23:52.500Z] === Task Finished ===
[taskcluster 2026-06-01T17:23:52.500Z] Task Duration: 8m15.434772508s
[taskcluster:error] exit status 1
Loading