Skip to content

feat: add Asana ticket detection to ticket compliance check#2430

Open
Oxygen56 wants to merge 8 commits into
The-PR-Agent:mainfrom
Oxygen56:feat/asana-ticket-provider
Open

feat: add Asana ticket detection to ticket compliance check#2430
Oxygen56 wants to merge 8 commits into
The-PR-Agent:mainfrom
Oxygen56:feat/asana-ticket-provider

Conversation

@Oxygen56

@Oxygen56 Oxygen56 commented Jun 6, 2026

Copy link
Copy Markdown

What

Fixes #2002 — Adds Asana task references detection to the PR ticket compliance check.

Problem

The ticket compliance check only detected GitHub issues and JIRA tickets. Teams using Asana had no automated ticket validation.

Solution

Adds find_asana_tickets() that detects:

  • Full Asana URLs: https://app.asana.com/0/{project_id}/{task_id}
  • Shorthand format: ASANA-123456789012

Asana references are included in the compliance check's related tickets alongside GitHub and JIRA references.

@github-actions github-actions Bot added the feature 💡 label Jun 6, 2026
@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Add Asana ticket detection and fix indentation normalization

✨ Enhancement 🐞 Bug fix

Grey Divider

Walkthroughs

Description
• Add Asana ticket detection to PR compliance check
  - Supports full URLs and ASANA-123456789 shorthand format
  - Asana tickets included in related tickets list
• Fix indentation character preservation in /improve suggestions
  - Handle negative delta_spaces with dedent operation
  - Normalize tabs/spaces to match original file's indentation
Diagram
flowchart LR
  A["PR Description & Branch"] -->|find_asana_tickets| B["Asana URLs Detected"]
  B -->|extract_tickets| C["Merged Ticket List"]
  C -->|Asana URLs| D["Placeholder Content"]
  E["Code Suggestions"] -->|dedent_code| F["Normalize Indentation"]
  F -->|Detect char| G["Tab or Space"]
  G -->|Apply| H["Corrected Code"]

Loading

Grey Divider

File Changes

1. pr_agent/tools/pr_code_suggestions.py 🐞 Bug fix +18/-2

Fix indentation character preservation in code suggestions

• Move indentation character detection outside conditional block
• Add handling for negative delta_spaces using textwrap.dedent
• Normalize all suggestion lines to match original file's indentation character
• Convert spaces to tabs when original file uses tab indentation

pr_agent/tools/pr_code_suggestions.py


2. pr_agent/tools/ticket_pr_compliance_check.py ✨ Enhancement +49/-0

Add Asana ticket detection to compliance check

• Add find_asana_tickets() function to detect Asana task references
• Support both full Asana URLs and ASANA-123456789 shorthand format
• Integrate Asana ticket detection into extract_tickets() workflow
• Handle Asana URLs with placeholder content since they cannot be fetched via GitHub API

pr_agent/tools/ticket_pr_compliance_check.py


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (3) 📎 Requirement gaps (1) 📜 Skill insights (0)

Context used

Grey Divider


Action required

1. Unsafe dline[remove_count:] dedent ✓ Resolved 📘 Rule violation ≡ Correctness
Description
When delta_spaces < 0 in dedent_code(), the new dedent logic slices a fixed remove_count of
characters from each non-empty line (dline[remove_count:]) without verifying they are indentation,
which can delete real code on lines with less leading whitespace or mixed tabs/spaces. This can
corrupt suggested patches and produce invalid or behavior-changing code suggestions.
Code

pr_agent/tools/pr_code_suggestions.py[R616-626]

+                elif delta_spaces < 0:
+                    # Remove exactly -delta_spaces leading spaces from each
+                    # non-empty line.  textwrap.dedent() strips the *common*
+                    # indent which may remove too much when lines have
+                    # varying indentation levels (Qodo bug #3).
+                    remove_count = -delta_spaces
+                    dedented_lines = []
+                    for dline in new_code_snippet.split('\n'):
+                        if dline.strip():
+                            dedented_lines.append(dline[remove_count:])
+                        else:
Evidence
PR Compliance ID 3 requires anticipating and handling edge cases, and the cited negative-delta
branch removes the first remove_count characters of each non-empty line unconditionally via
dline[remove_count:], rather than stripping only leading whitespace. Because delta_spaces is
computed using lstrip()-based character counts (where tabs count as 1 character), remove_count
can exceed the actual leading indentation on some lines (especially with varying indentation or
mixed tabs/spaces), causing the slice to remove non-indentation characters and thus delete real code
content.

Rule 3: Robust Error Handling
pr_agent/tools/pr_code_suggestions.py[616-626]
pr_agent/tools/pr_code_suggestions.py[607-648]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`dedent_code()` handles `delta_spaces < 0` by slicing `dline[remove_count:]` for each non-empty line, which removes raw characters rather than only indentation; if a line has fewer than `remove_count` leading whitespace characters (or uses tabs/spaces inconsistently), this can strip real code and corrupt the resulting suggestion.
## Issue Context
This logic runs on generated/published code suggestions, so incorrect slicing can produce syntactically broken or behavior-changing patches and mislead users into applying invalid edits. A concrete failure case: original indentation starts with `\t` (so `original_initial_spaces == 1`), the suggested first line uses 4 spaces (so `suggested_initial_spaces == 4`), yielding `delta_spaces = -3` and `remove_count = 3`, and a later suggested line like `"  foo()"` (2 leading spaces) becomes `"o()"` after slicing.
## Fix Focus Areas
- pr_agent/tools/pr_code_suggestions.py[607-648]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Unused pytest import 📘 Rule violation ⚙ Maintainability
Description
tests/unittest/test_ticket_compliance.py imports pytest but never uses it, which will trigger
Ruff/Flake8 unused-import checks and can fail CI/linting. This should be removed or the import
should be used (e.g., fixtures/parametrize).
Code

tests/unittest/test_ticket_compliance.py[R9-10]

+import pytest
+from pr_agent.tools.ticket_pr_compliance_check import find_asana_tickets
Evidence
PR Compliance ID 12 requires Flake8 findings to be fixed. The newly added test file introduces an
unused import (import pytest) with no references in the file.

AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes: AGENTS.md: All Flake8 Findings Must Be Fixed Without Silent Behavior Changes
tests/unittest/test_ticket_compliance.py[9-10]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The test module imports `pytest` but does not use it, causing an unused-import lint violation.
## Issue Context
Repository linting rules (Ruff/Flake8) typically fail on unused imports.
## Fix Focus Areas
- tests/unittest/test_ticket_compliance.py[9-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Asana detection lacks tests 📘 Rule violation ☼ Reliability
Description
The PR introduces new Asana ticket parsing and merges results into extract_tickets() but does not
add/update pytest coverage for this new behavior. This increases regression risk (e.g., parsing
edge-cases and ticket list truncation behavior) without automated validation.
Code

pr_agent/tools/ticket_pr_compliance_check.py[R48-66]

+def find_asana_tickets(text: str) -> list:
+    """Extract Asana task references from text.
+
+    Supports both full Asana URLs and shorthand ``ASANA-123456789012``
+    format.  Returns a list of unique task URLs.
+
+    Args:
+        text: The text to scan for Asana task references.
+
+    Returns:
+        A list of Asana task URLs.
+    """
+    tickets = set()
+    for match in re.finditer(r'https://app\.asana\.com/0/(\d+)/(\d+)', text):
+        tickets.add(match.group(0))
+    for match in re.finditer(r'(?:^|[^A-Za-z0-9])(?:ASANA|asana)[- ]?(\d{12,20})', text):
+        task_id = match.group(1)
+        tickets.add(f"https://app.asana.com/0/0/{task_id}")
+    return sorted(tickets)
Evidence
PR Compliance ID 15 requires adding/updating pytest tests for new/changed behavior. This PR adds
find_asana_tickets() and integrates it into extract_tickets() (new behavior) but does not
include any corresponding test additions in the changed files.

AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update Pytest Tests in the Appropriate Test Suite for Code Changes: AGENTS.md: Add/Update...

Comment thread pr_agent/tools/ticket_pr_compliance_check.py
Comment thread pr_agent/tools/ticket_pr_compliance_check.py
Comment thread pr_agent/tools/pr_code_suggestions.py Outdated
@naorpeled

Copy link
Copy Markdown
Member

Hey @Oxygen56,
Thanks for working on this!

Can you please add tests to validate the new functionality? 🙏

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit a2bf77a

Comment thread pr_agent/tools/ticket_pr_compliance_check.py Fixed
Comment thread pr_agent/tools/ticket_pr_compliance_check.py Fixed
Comment thread pr_agent/tools/ticket_pr_compliance_check.py Fixed
Comment thread pr_agent/tools/ticket_pr_compliance_check.py
Comment thread pr_agent/tools/ticket_pr_compliance_check.py Outdated
@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit a0c62b4

Comment thread pr_agent/tools/pr_code_suggestions.py Outdated
Comment thread tests/unittest/test_ticket_compliance.py Outdated
@Oxygen56

Oxygen56 commented Jun 6, 2026

Copy link
Copy Markdown
Author

感谢所有 review 意见,我已在最新提交中处理了以下问题:

Bug 修复:

  • ✅ 不安全的 dline[remove_count:] 去缩进 → 改为只剥离每行实际的空白字符
  • ✅ Asana ticket 被截断丢弃 → 重构截断逻辑,存在 Asana ticket 时至少保留 1 个位置
  • ✅ Asana 缩写大小写敏感 → 添加 re.IGNORECASE,现在支持 ASANA-/asana-/Asana-
  • ✅ Asana 缩写过度匹配 → 添加 \b 单词边界

规范/安全修复:

  • ✅ 移除未使用的 import pytest
  • _ASANA_TASK_*_PATTERN 常量现在在 find_asana_tickets() 中使用
  • ✅ 单引号改为双引号
  • ✅ CodeQL: 使用 startswith() 替代子串匹配

测试补充:

  • ✅ 新增 test_shorthand_mixed_case_asana 测试
  • ✅ 新增 test_shorthand_respects_word_boundary 测试

Comment thread tests/unittest/test_ticket_compliance.py Fixed
@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

Grey Divider

New Review Started

This review has been superseded by a new analysis

Grey Divider

Qodo Logo

Oxygen56 and others added 6 commits June 8, 2026 23:27
The dedent_code method only adjusted indentation when delta_spaces > 0
and never normalized the indentation character. This caused /improve to
replace tabs with spaces in Go, Makefile, and other tab-indented codebases.

Changes:
- Handle delta_spaces < 0 case with dedent (not just > 0)
- Normalize all suggestion lines to use the original file's indentation
  character (tab or space), auto-detected from the existing code

Fixes The-PR-Agent#1858

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds support for detecting Asana task references in PR descriptions
and branch names. Supports both full URLs and ASANA-123456789 shorthand
format.

- find_asana_tickets() extracts Asana task URLs from text
- Asana tickets are included in the compliance check's related tickets
- Graceful handling: Asana URLs are shown with a placeholder body since
  they cannot be fetched via the GitHub API

Fixes The-PR-Agent#2002

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Use ticket_url instead of url (templates access ticket.ticket_url)
- Add labels field (templates access ticket.labels under StrictUndefined)
- Add ticket_id field for consistency with GitHub ticket entries
- Replace textwrap.dedent() with exact -delta_spaces removal to avoid
  stripping too much indentation when lines have varying levels
- Preserve remainder spaces when converting spaces to tabs
  (e.g. 6 spaces → 1 tab + 2 spaces instead of silently dropping 2)
…check

- Covers full Asana URLs, shorthand ASANA- prefix, case-insensitivity
- Tests deduplication, sorting, empty input, and mixed PR description content
- Validates GitHub URLs are not misidentified as Asana tickets
- Use compiled Asana patterns (_ASANA_TASK_URL_PATTERN,
  _ASANA_TASK_SHORT_PATTERN) in find_asana_tickets() instead of
  inline regex (CodeQL unused-variable, comments The-PR-Agent#5/The-PR-Agent#6).
- Add re.IGNORECASE flag to _ASANA_TASK_SHORT_PATTERN for proper
  case-insensitive matching.
- Replace substring match ('app.asana.com' in ticket) with
  prefix check (ticket.startswith()) to fix CodeQL URL
  sanitization warning (comment The-PR-Agent#4).
- Reserve at least one slot for Asana tickets during
  truncation when there are 3+ GitHub/branch tickets
  (comment The-PR-Agent#8).
- Dedent only actual leading whitespace instead of blindly
  slicing dline[remove_count:] to avoid deleting real code
  on lines with less indentation (comments The-PR-Agent#3/The-PR-Agent#9).
- Remove unused 'import pytest' from test file
  (comments The-PR-Agent#10/The-PR-Agent#20).
- Add test_shorthand_mixed_case_asana and
  test_shorthand_respects_word_boundary test cases.
@Oxygen56 Oxygen56 force-pushed the feat/asana-ticket-provider branch from 2921c2b to 3ce5450 Compare June 8, 2026 15:29
@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit 3ce5450

@Oxygen56

Oxygen56 commented Jun 8, 2026

Copy link
Copy Markdown
Author

Hey @naorpeled, thanks for the review!

Tests have been added — there are now 12 test cases in tests/unittest/test_ticket_compliance.py covering:

  • Full Asana URL detection (https://app.asana.com/0/...)
  • Shorthand format (ASANA-123456789012)
  • Case-insensitive matching (asana-, Asana-)
  • Word boundary enforcement (no false matches on NOTASANA-...)
  • Deduplication of identical tickets
  • Multiple tickets in mixed content
  • Empty input / no-ticket text
  • GitHub URL exclusion
  • Sorted output

The test file was added in commit a0c62b4 and extended with two additional edge cases in the latest push (3ce5450). Let me know if anything else is needed!

Comment thread pr_agent/tools/pr_code_suggestions.py Outdated
@dellch

dellch commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

There are docs (docs/docs/core-abilities/fetching_ticket_context.md) that perhaps should be updated as well?

…ode_suggestions.py, update docs with Asana support
@Oxygen56

Copy link
Copy Markdown
Author

Updated docs/docs/core-abilities/fetching_ticket_context.md with an Asana Integration section covering supported reference formats (full URLs and ASANA-123456789012 shorthand), how to link a PR to an Asana task, and a note that Asana task content is not fetched via API (reference-only for compliance checking).

@Oxygen56

Copy link
Copy Markdown
Author

Tests for the Asana ticket detection are already included in this PR — see tests/unittest/test_ticket_compliance.py, which was added with 96 lines covering both full Asana URL and shorthand format detection.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit 0573be2

Comment thread pr_agent/tools/ticket_pr_compliance_check.py Outdated
Per maintainer feedback (naorpeled), remove the invented ASANA- prefix
shorthand since Asana has no native shorthand format like Jira's PROJ-123.
Only full Asana URLs are now supported.

- Remove _ASANA_TASK_SHORT_PATTERN regex and matching loop
- Update find_asana_tickets() docstring
- Update docs to remove shorthand format references
- Update tests to use full URLs only, drop shorthand-specific cases
@qodo-free-for-open-source-projects

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit 4caee4c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Support for Asana Ticket Provider

4 participants