Repository Analysis

The-PR-Agent/pr-agent

🚀 PR Agent: The Original Open-Source PR Reviewer. This project is not the Qodo free tier.

44.6 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of The-PR-Agent/pr-agent, a Python project with 12,750 GitHub stars. SynthScan v2.0 examined 83,071 lines of code across 348 source files, recording 3148 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 44.6 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

44.6
Adjusted Score
44.6
Raw Score
100%
Time Factor
2026-08-28
Last Push
12.8K
Stars
Python
Language
83.1K
Lines of Code
348
Files
3.1K
Pattern Hits
2026-08-29
Scan Date
0.07
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 2HIGH 23MEDIUM 308LOW 2815

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 3148 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers2108 hits · 1918 pts
SeverityFileLineSnippetContext
LOWpr_agent/config_loader.py94def apply_secrets_manager_config():CODE
LOWpr_agent/secret_providers/__init__.py7def validate_secret_provider_setting():CODE
LOWpr_agent/mosaico/env_bridge.py64def _register_langfuse_callback(settings) -> None:CODE
LOWpr_agent/mosaico/dispatch.py212def _ask_needs_context_fallback() -> str:CODE
LOWpr_agent/mosaico/dispatch.py302def _pr_fetch_failed_fallback(pr_url: str) -> str:CODE
LOWpr_agent/mosaico/observability.py18def parse_observability_metadata(raw) -> dict:CODE
LOWpr_agent/tools/pr_update_changelog.py140 def _prepare_changelog_update(self) -> Tuple[str, str]:CODE
LOWpr_agent/tools/pr_code_suggestions.py302 def _get_suggestions_coverage_footer(self, suggestions_present: bool = True) -> str:CODE
LOWpr_agent/tools/pr_code_suggestions.py365 def publish_persistent_comment_with_history(git_provider: GitProvider,CODE
LOWpr_agent/tools/pr_code_suggestions.py394 def _is_legacy_suggestions_comment(comment_text: str) -> bool:CODE
LOWpr_agent/tools/pr_code_suggestions.py615 async def _self_reflect_with_fallback(self, suggestion_list: List, patches_diff: str, model: str) -> str:CODE
LOWpr_agent/tools/pr_code_suggestions.py646 async def analyze_self_reflection_response(self, data, response_reflect):CODE
LOWpr_agent/tools/pr_code_suggestions.py712 def _prepare_pr_code_suggestions(self, predictions: str) -> Dict:CODE
LOWpr_agent/tools/pr_code_suggestions.py763 async def push_inline_code_suggestions(self, data, include_coverage_footer: bool = True):CODE
LOWpr_agent/tools/pr_code_suggestions.py930 def _infer_space_indentation_unit(space_deltas: list[int]) -> int:CODE
LOWpr_agent/tools/pr_code_suggestions.py940 def _continuation_space_adjustments(CODE
LOWpr_agent/tools/pr_code_suggestions.py1098 def validate_one_liner_suggestion_not_repeating_code(self, suggestion):CODE
LOWpr_agent/tools/pr_code_suggestions.py1245 async def convert_to_decoupled_with_line_numbers(self, patches_diff_list_no_line_numbers, model) -> List[str]:CODE
LOWpr_agent/tools/pr_code_suggestions.py1281 def generate_summarized_suggestions(self, data: Dict) -> str:CODE
LOWpr_agent/tools/pr_code_suggestions.py1417 async def self_reflect_on_suggestions(self,CODE
LOWpr_agent/tools/pr_description.py538 def _prepare_pr_answer_with_markers(self) -> Tuple[str, str, str, List[dict]]:STRING
LOWpr_agent/tools/pr_description.py708 def process_pr_files_prediction(self, pr_body, value):STRING
LOWpr_agent/tools/pr_similar_issue.py401 def _update_index_with_issues(self, issues_list, repo_name_for_index, upsert=False):CODE
LOWpr_agent/tools/pr_similar_issue.py496 def _update_table_with_issues(self, issues_list, repo_name_for_index, ingest=False):CODE
LOWpr_agent/tools/pr_similar_issue.py587 def _update_qdrant_with_issues(self, issues_list, repo_name_for_index, ingest=False):CODE
LOWpr_agent/tools/pr_line_questions.py146 def _load_conversation_history(self) -> str:CODE
LOWpr_agent/tools/pr_line_questions.py219 def _fit_conversation_history(self, variables, model):CODE
LOWpr_agent/tools/pr_help_docs.py120def map_documentation_files_to_contents(base_path: str, doc_files: list[str], max_allowed_file_len=5000) -> dict[str, stCODE
LOWpr_agent/tools/pr_help_docs.py147def aggregate_documentation_files_for_prompt_contents(file_path_to_contents: dict[str, str], return_just_headings=False)CODE
LOWpr_agent/tools/pr_help_docs.py421 def _gen_filenames_to_contents_map_from_repo(self) -> dict[str, str]:CODE
LOWpr_agent/tools/pr_help_docs.py48def extract_model_answer_and_relevant_sources(ai_response: str) -> str | None:CODE
LOWpr_agent/tools/pr_help_docs.py75def get_maximal_text_input_length_for_token_count_estimation():CODE
LOWpr_agent/tools/pr_help_docs.py169def format_markdown_q_and_a_response(question_str: str, response_str: str, relevant_sections: list[dict[str, str]],CODE
LOWpr_agent/tools/pr_help_docs.py396 def _find_all_document_files_matching_exts(self, abs_docs_path: str, ignore_readme=False, max_allowed_files=5000) ->CODE
LOWpr_agent/tools/pr_help_docs.py494 async def _rank_docs_and_return_them_as_prompt(self, docs_filepath_to_contents: dict[str, str], max_allowed_txt_inpuCODE
LOWpr_agent/tools/pr_reviewer.py242 def _should_publish_review_no_suggestions(self, pr_review: str) -> bool:CODE
LOWpr_agent/tools/pr_reviewer.py419 def _can_verify_inline_key_issue_publication(self) -> bool:CODE
LOWpr_agent/tools/pr_reviewer.py422 def _published_inline_key_issue_fingerprints(self, store: InlineCommentStore,CODE
LOWpr_agent/tools/pr_reviewer.py434 def _publish_key_issues_as_inline_comments(self, data: dict) -> dict:CODE
LOWpr_agent/tools/pr_reviewer.py554 def _get_previous_review_comment(self):CODE
LOWpr_agent/tools/pr_reviewer.py567 def _remove_previous_review_comment(self, comment):CODE
LOWpr_agent/tools/pr_reviewer.py577 def _can_run_incremental_review(self) -> bool:CODE
LOWpr_agent/tools/pr_help_message.py272 async def prepare_relevant_snippets(self, sim_results):CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py175def _get_user_description_for_asana(git_provider) -> str:CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py187def extract_gitlab_ticket_references(pr_description, repo_path, gitlab_url):CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py96def _get_asana_request_timeout() -> float:CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py107async def _fetch_asana_ticket_content(session, ticket_url: str, max_body_characters: int) -> dict:CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py137async def _fetch_asana_ticket_contents(CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py242def extract_ticket_links_from_pr_description(pr_description, repo_path, base_url_html='https://github.com'):CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py281def extract_ticket_links_from_branch_name(branch_name, repo_path, base_url_html="https://github.com"):CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py574async def extract_and_cache_pr_tickets(git_provider, vars):CODE
LOWpr_agent/tools/pr_questions.py82 def identify_image_in_comment(self):CODE
LOWpr_agent/git_providers/codecommit_provider.py350 def _is_valid_codecommit_hostname(hostname: str) -> bool:CODE
LOWpr_agent/git_providers/codecommit_provider.py476 def _get_language_percentages(extensions):CODE
LOWpr_agent/git_providers/plain_diff_provider.py122 def publish_structured_review(self, review: dict):CODE
LOWpr_agent/git_providers/azuredevops_provider.py137 def _get_suggestion_end_offset(self, relevant_file: str, relevant_lines_end: int) -> Optional[int]:CODE
LOWpr_agent/git_providers/azuredevops_provider.py149 def _fallback_suggestion_section(suggestion: dict, reason: str) -> str:CODE
LOWpr_agent/git_providers/azuredevops_provider.py155 def _publish_fallback_suggestions(self, suggestions: list[tuple[dict, str]]) -> int:CODE
LOWpr_agent/git_providers/azuredevops_provider.py275 def reply_to_comment_from_comment_id(self, comment_id: int, body: str, is_temporary: bool = False) -> Comment:CODE
LOWpr_agent/git_providers/azuredevops_provider.py771 def publish_persistent_comment(self, pr_comment: str,CODE
2048 more matches not shown…
Decorative Section Separators200 hits · 774 pts
SeverityFileLineSnippetContext
MEDIUMtests/unittest/test_extra_config_url.py93# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py95# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py237# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py239# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py23# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py319# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py326# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_extra_config_url.py689# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_extra_config_url.py691# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_diff_pipeline_core.py68# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py70# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py151# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py153# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py253# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py255# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py332# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py334# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py25# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_diff_pipeline_core.py27# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_provider.py158# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_provider.py160# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py40# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py42# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py105# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py107# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py213# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py215# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py304# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py306# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py369# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_rendering.py371# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_mosaico_router.py140# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py142# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py162# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py164# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py227# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py229# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py297# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py299# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py356# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py358# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py397# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py399# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py718# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py720# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py569# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py571# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py637# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_mosaico_router.py639# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py44# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py46# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py88# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py90# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py185# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py187# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py243# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py245# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py359# ---------------------------------------------------------------------------STRING
MEDIUMtests/unittest/test_pr_code_suggestions_filtering.py361# ---------------------------------------------------------------------------STRING
140 more matches not shown…
Excessive Try-Catch Wrapping502 hits · 542 pts
SeverityFileLineSnippetContext
LOWpr_agent/config_loader.py59 except Exception:CODE
LOWpr_agent/config_loader.py114 except Exception as e:CODE
LOWpr_agent/config_loader.py116 except Exception as e:CODE
LOWpr_agent/custom_merge_loader.py92 except Exception as e:CODE
LOW…agent/secret_providers/aws_secrets_manager_provider.py23 except Exception as e:CODE
LOW…agent/secret_providers/aws_secrets_manager_provider.py34 except Exception as e:CODE
LOW…agent/secret_providers/aws_secrets_manager_provider.py45 except Exception as e:CODE
LOW…agent/secret_providers/aws_secrets_manager_provider.py55 except Exception as e:CODE
MEDIUM…agent/secret_providers/aws_secrets_manager_provider.py11def __init__(self):CODE
LOW…cret_providers/google_cloud_storage_secret_provider.py16 except Exception as e:CODE
LOW…cret_providers/google_cloud_storage_secret_provider.py24 except Exception as e:CODE
LOW…cret_providers/google_cloud_storage_secret_provider.py32 except Exception as e:CODE
MEDIUM…cret_providers/google_cloud_storage_secret_provider.py10def __init__(self):CODE
LOWpr_agent/secret_providers/__init__.py29 except Exception as e:CODE
LOWpr_agent/secret_providers/__init__.py36 except Exception as e:CODE
LOWpr_agent/mosaico/server.py74 except Exception as e:CODE
LOWpr_agent/mosaico/dispatch.py232 except Exception:CODE
LOWpr_agent/mosaico/dispatch.py251 except Exception:CODE
LOWpr_agent/mosaico/dispatch.py297 except Exception as e:CODE
LOWpr_agent/mosaico/dispatch.py347 except Exception:CODE
LOWpr_agent/mosaico/dispatch.py413 except Exception:CODE
LOWpr_agent/mosaico/observability.py77 except Exception as e:CODE
LOWpr_agent/mosaico/executor.py72 except Exception as e:CODE
LOWpr_agent/mosaico/executor.py117 except Exception as e:CODE
LOWpr_agent/tools/pr_update_changelog.py181 except Exception:CODE
LOWpr_agent/tools/pr_update_changelog.py212 except Exception as e:CODE
MEDIUMpr_agent/tools/pr_update_changelog.py200def _get_changelog_file(self):CODE
MEDIUMpr_agent/tools/pr_code_suggestions.py1098def validate_one_liner_suggestion_not_repeating_code(self, suggestion):CODE
LOWpr_agent/tools/pr_code_suggestions.py274 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py284 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py361 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py426 except Exception as cleanup_error:CODE
LOWpr_agent/tools/pr_code_suggestions.py542 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py675 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py679 except Exception as e: #CODE
LOWpr_agent/tools/pr_code_suggestions.py697 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py757 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1093 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1120 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1143 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1208 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1236 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1276 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1403 except Exception as e:CODE
LOWpr_agent/tools/pr_code_suggestions.py1456 except Exception as e:CODE
LOWpr_agent/tools/pr_description.py217 except Exception as e:CODE
LOWpr_agent/tools/pr_description.py227 except Exception as e:CODE
LOWpr_agent/tools/pr_description.py233 except Exception as e:CODE
LOWpr_agent/tools/pr_description.py783 except Exception as e:CODE
LOWpr_agent/tools/pr_description.py946 except Exception as e:CODE
LOWpr_agent/tools/pr_description.py427 except Exception as e:STRING
LOWpr_agent/tools/pr_description.py457 except Exception as e:STRING
LOWpr_agent/tools/pr_description.py534 except Exception as e:STRING
LOWpr_agent/tools/pr_description.py585 except Exception as e:STRING
LOWpr_agent/tools/pr_description.py703 except Exception as e:STRING
LOWpr_agent/tools/pr_similar_issue.py47 except Exception:CODE
LOWpr_agent/tools/pr_similar_issue.py184 except Exception:CODE
LOWpr_agent/tools/pr_similar_issue.py192 except Exception:CODE
LOWpr_agent/tools/pr_similar_issue.py269 except Exception as e:CODE
LOWpr_agent/tools/pr_similar_issue.py361 except Exception:CODE
442 more matches not shown…
Deep Nesting140 hits · 108 pts
SeverityFileLineSnippetContext
LOWpr_agent/config_loader.py94CODE
LOWpr_agent/config_loader.py125CODE
LOWpr_agent/cli.py94CODE
LOWpr_agent/custom_merge_loader.py12CODE
LOWpr_agent/mosaico/dispatch.py258CODE
LOWpr_agent/mosaico/dispatch.py388CODE
LOWpr_agent/mosaico/diff_provider.py29CODE
LOWpr_agent/tools/pr_code_suggestions.py155CODE
LOWpr_agent/tools/pr_code_suggestions.py345CODE
LOWpr_agent/tools/pr_code_suggestions.py365CODE
LOWpr_agent/tools/pr_code_suggestions.py646CODE
LOWpr_agent/tools/pr_code_suggestions.py712CODE
LOWpr_agent/tools/pr_code_suggestions.py940CODE
LOWpr_agent/tools/pr_code_suggestions.py1048CODE
LOWpr_agent/tools/pr_code_suggestions.py1098CODE
LOWpr_agent/tools/pr_code_suggestions.py1125CODE
LOWpr_agent/tools/pr_code_suggestions.py1147CODE
LOWpr_agent/tools/pr_code_suggestions.py1245CODE
LOWpr_agent/tools/pr_code_suggestions.py1281CODE
LOWpr_agent/tools/pr_description.py870CODE
LOWpr_agent/tools/pr_description.py103CODE
LOWpr_agent/tools/pr_description.py239CODE
LOWpr_agent/tools/pr_description.py360CODE
LOWpr_agent/tools/pr_description.py511CODE
LOWpr_agent/tools/pr_description.py596CODE
LOWpr_agent/tools/pr_description.py708CODE
LOWpr_agent/tools/pr_similar_issue.py19CODE
LOWpr_agent/tools/pr_similar_issue.py260CODE
LOWpr_agent/tools/pr_similar_issue.py401CODE
LOWpr_agent/tools/pr_similar_issue.py496CODE
LOWpr_agent/tools/pr_similar_issue.py587CODE
LOWpr_agent/tools/pr_add_docs.py178CODE
LOWpr_agent/tools/pr_add_docs.py136CODE
LOWpr_agent/tools/pr_line_questions.py66CODE
LOWpr_agent/tools/pr_generate_labels.py65CODE
LOWpr_agent/tools/pr_generate_labels.py159CODE
LOWpr_agent/tools/pr_help_docs.py81CODE
LOWpr_agent/tools/pr_help_docs.py120CODE
LOWpr_agent/tools/pr_help_docs.py147CODE
LOWpr_agent/tools/pr_help_docs.py169CODE
LOWpr_agent/tools/pr_help_docs.py396CODE
LOWpr_agent/tools/pr_help_docs.py421CODE
LOWpr_agent/tools/pr_reviewer.py524CODE
LOWpr_agent/tools/pr_reviewer.py621CODE
LOWpr_agent/tools/pr_help_message.py96CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py187CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py242CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py387CODE
LOWpr_agent/tools/ticket_pr_compliance_check.py574CODE
LOWpr_agent/git_providers/codecommit_provider.py429CODE
LOWpr_agent/git_providers/plain_diff_provider.py45CODE
LOWpr_agent/git_providers/azuredevops_provider.py180CODE
LOWpr_agent/git_providers/azuredevops_provider.py551CODE
LOWpr_agent/git_providers/azuredevops_provider.py859CODE
LOWpr_agent/git_providers/github_provider.py107CODE
LOWpr_agent/git_providers/github_provider.py250CODE
LOWpr_agent/git_providers/github_provider.py472CODE
LOWpr_agent/git_providers/github_provider.py647CODE
LOWpr_agent/git_providers/github_provider.py947CODE
LOWpr_agent/git_providers/github_provider.py1517CODE
80 more matches not shown…
Unused Imports66 hits · 60 pts
SeverityFileLineSnippetContext
LOW…agent/secret_providers/aws_secrets_manager_provider.py3CODE
LOWpr_agent/mosaico/server.py28CODE
LOWpr_agent/mosaico/server.py61CODE
LOWpr_agent/tools/pr_update_changelog.py15CODE
LOWpr_agent/tools/pr_code_suggestions.py36CODE
LOWpr_agent/tools/pr_code_suggestions.py36CODE
LOWpr_agent/tools/pr_code_suggestions.py36CODE
LOWpr_agent/tools/pr_description.py28CODE
LOWpr_agent/tools/pr_description.py33CODE
LOWpr_agent/tools/pr_description.py33CODE
LOWpr_agent/tools/pr_line_questions.py1CODE
LOWpr_agent/tools/pr_line_questions.py10CODE
LOWpr_agent/tools/pr_line_questions.py13CODE
LOWpr_agent/tools/pr_line_questions.py23CODE
LOWpr_agent/tools/pr_generate_labels.py2CODE
LOWpr_agent/tools/pr_generate_labels.py4CODE
LOWpr_agent/git_providers/azuredevops_provider.py1CODE
LOWpr_agent/git_providers/gitlab_provider.py2CODE
LOWpr_agent/git_providers/gitlab_provider.py7CODE
LOWpr_agent/git_providers/gitlab_provider.py7CODE
LOWpr_agent/git_providers/gitlab_provider.py8CODE
LOWpr_agent/git_providers/gitlab_provider.py11CODE
LOWpr_agent/algo/cli_args.py1CODE
LOWpr_agent/algo/cli_args.py1CODE
LOWpr_agent/algo/cli_args.py2CODE
LOWpr_agent/algo/inline_comment_dedup.py32CODE
LOWpr_agent/algo/utils.py1CODE
LOWpr_agent/algo/utils.py3CODE
LOWpr_agent/algo/skills_loader.py38CODE
LOWpr_agent/algo/pr_processing.py1CODE
LOWpr_agent/algo/pr_processing.py8CODE
LOWpr_agent/algo/pr_processing.py15CODE
LOWpr_agent/algo/git_patch_processing.py1CODE
LOWpr_agent/algo/git_patch_processing.py6CODE
LOWpr_agent/algo/ai_handlers/langchain_ai_handler.py11CODE
LOWpr_agent/log/__init__.py3CODE
LOWpr_agent/servers/github_app.py19CODE
LOWpr_agent/servers/github_polling.py3CODE
LOWtests/unittest/test_clip_tokens.py3CODE
LOWtests/unittest/test_mosaico_provider.py82CODE
LOWtests/unittest/test_mosaico_router.py464CODE
LOWtests/unittest/test_mosaico_router.py506CODE
LOWtests/unittest/test_codecommit_provider.py5CODE
LOWtests/unittest/test_extract_issue_from_branch.py1CODE
LOWtests/unittest/test_mosaico_a2a_roundtrip.py25CODE
LOWtests/unittest/test_fresh_vars_functionality.py22CODE
LOWtests/unittest/test_aws_secrets_manager_provider.py5CODE
LOWtests/unittest/test_handle_patch_deletions.py2CODE
LOWtests/unittest/test_handle_patch_deletions.py5CODE
LOWtests/unittest/test_litellm_reasoning_effort.py1CODE
LOWtests/health_test/main.py1CODE
LOWtests/health_test/main.py5CODE
LOWtests/health_test/main.py9CODE
LOWtests/health_test/main.py10CODE
LOWtests/health_test/main.py13CODE
LOWtests/e2e_tests/test_gitea_app.py9CODE
LOWtests/e2e_tests/test_gitea_app.py9CODE
LOWtests/e2e_tests/test_gitea_app.py9CODE
LOWtests/e2e_tests/test_bitbucket_app.py1CODE
LOWtests/e2e_tests/test_bitbucket_app.py3CODE
6 more matches not shown…
Synthetic Comment Markers8 hits · 55 pts
SeverityFileLineSnippetContext
HIGHpr_agent/settings/configuration.toml136enable_pr_description=true # adds a section with an AI-generated summary of the PR changesCODE
HIGHpr_agent/settings/pr_reviewer_prompts.toml11### AI-generated changes summary:COMMENT
HIGH…e_suggestions/pr_code_suggestions_reflect_prompts.toml49### AI-generated changes summary:COMMENT
HIGH…ings/code_suggestions/pr_code_suggestions_prompts.toml13### AI-generated changes summary:COMMENT
HIGH…estions/pr_code_suggestions_prompts_not_decoupled.toml14### AI-generated changes summary:COMMENT
HIGHpr_agent/tools/pr_description.py197 # Pass None when the title is not AI-generated so the providerCOMMENT
HIGHpr_agent/algo/pr_processing.py551 f"### AI-generated changes summary:\n{file.ai_file_summary['long_summarCODE
HIGHdocs/docs/core-abilities/metadata.md31### AI-generated file summary:COMMENT
Self-Referential Comments18 hits · 53 pts
SeverityFileLineSnippetContext
MEDIUMpr_agent/tools/pr_description.py65 # Initialize the variables dictionaryCOMMENT
MEDIUMpr_agent/tools/pr_generate_labels.py40 # Initialize the variables dictionaryCOMMENT
MEDIUMpr_agent/git_providers/gitlab_provider.py1158 # Create a general note on the file in the MRCOMMENT
MEDIUMpr_agent/algo/token_handler.py25 _lock = Lock() # Create a lock objectCODE
MEDIUMpr_agent/agent/pr_agent.py197 # Define the language-specific instruction and the separatorCOMMENT
MEDIUMpr_agent/servers/azuredevops_server_webhook.py1# This file contains the code for the Azure DevOps Server webhook server.COMMENT
MEDIUMtests/unittest/test_add_docs_trigger.py27 # Define a FakeGitProvider for both apply_repo_settings and PRAddDocsCOMMENT
MEDIUMtests/unittest/test_codecommit_client.py8 # Create a mock CodeCommitClient instance and codecommit_client memberCOMMENT
MEDIUMtests/unittest/test_codecommit_client.py83 # Create a mock CodeCommitClient instance and codecommit_client memberCOMMENT
MEDIUMtests/unittest/test_codecommit_client.py107 # Create a mock CodeCommitClient instance and codecommit_client memberCOMMENT
MEDIUMtests/unittest/test_extend_patch.py125 # Create a TokenHandler instance with dummy dataCOMMENT
MEDIUMtests/unittest/test_extend_patch.py132 # Create a list of languages with files containing base_file and patch dataCOMMENT
MEDIUMtests/e2e_tests/test_github_app.py39 # Create a new branch from the base branchCOMMENT
MEDIUMtests/e2e_tests/test_github_app.py59 # Create a pull requestCOMMENT
MEDIUMtests/e2e_tests/test_bitbucket_app.py43 # Create a new branch from the base branchCOMMENT
MEDIUMtests/e2e_tests/test_bitbucket_app.py58 # Create a pull requestCOMMENT
MEDIUMtests/e2e_tests/test_gitlab_webhook.py36 # Create a new branch from the base branchCOMMENT
MEDIUMtests/e2e_tests/test_gitlab_webhook.py50 # Create a merge requestCOMMENT
Cross-File Repetition9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHpr_agent/git_providers/codecommit_provider.py0retrieves the list of files that have been modified, added, deleted, or renamed in a pull request in gitlab, along with STRING
HIGHpr_agent/git_providers/github_provider.py0retrieves the list of files that have been modified, added, deleted, or renamed in a pull request in gitlab, along with STRING
HIGHpr_agent/git_providers/gitlab_provider.py0retrieves the list of files that have been modified, added, deleted, or renamed in a pull request in gitlab, along with STRING
HIGHtests/unittest/test_mosaico_smoke.py0\ review: estimated_effort_to_review_[1-5]: '2' score: '85' relevant_tests: 'no' key_issues_to_review: - relevant_file: STRING
HIGHtests/unittest/test_mosaico_provider.py0\ review: estimated_effort_to_review_[1-5]: '2' score: '85' relevant_tests: 'no' key_issues_to_review: - relevant_file: STRING
HIGHtests/unittest/test_mosaico_a2a_roundtrip.py0\ review: estimated_effort_to_review_[1-5]: '2' score: '85' relevant_tests: 'no' key_issues_to_review: - relevant_file: STRING
HIGHtests/unittest/test_plain_diff_provider.py0diff --git a/foo.py b/foo.py index 1111111..2222222 100644 --- a/foo.py +++ b/foo.py @@ -1,3 +1,3 @@ line1 -line2 +line2STRING
HIGHtests/unittest/test_plain_diff_mode_e2e.py0diff --git a/foo.py b/foo.py index 1111111..2222222 100644 --- a/foo.py +++ b/foo.py @@ -1,3 +1,3 @@ line1 -line2 +line2STRING
HIGHtests/unittest/test_diff_parsing.py0diff --git a/foo.py b/foo.py index 1111111..2222222 100644 --- a/foo.py +++ b/foo.py @@ -1,3 +1,3 @@ line1 -line2 +line2STRING
Over-Commented Block36 hits · 34 pts
SeverityFileLineSnippetContext
LOWrequirements.txt41pydantic==2.13.3COMMENT
LOW.pre-commit-config.yaml21 # rev must match what's in dev-requirements.txtCOMMENT
LOW.pre-commit-config.yaml41 # hooks:COMMENT
LOWdocker/mosaico/smoke_test.sh1#!/usr/bin/env bashCOMMENT
LOWpr_agent/settings/custom_labels.toml1[config]COMMENT
LOWpr_agent/settings/configuration.toml81# extended thinking for Claude reasoning modelsCOMMENT
LOWpr_agent/settings/configuration.toml321handle_push_trigger = falseCOMMENT
LOWpr_agent/settings/configuration.toml361# description_path= "path/to/description.md"COMMENT
LOWpr_agent/settings/configuration.toml401callback_timeout_seconds = 30 # max seconds to wait for pending litellm callbacks to flush before exitingCOMMENT
LOWpr_agent/settings/configuration.toml441COMMENT
LOWpr_agent/settings/.secrets_template.toml1# QUICKSTART:COMMENT
LOWpr_agent/git_providers/azuredevops_provider.py601 # pull_request_id=self.pr_num,COMMENT
LOWpr_agent/git_providers/utils.py21# from a repo's .pr_agent.toml. For each section listed here, only the keys inCOMMENT
LOWpr_agent/git_providers/git_provider.py601 except Exception as e:COMMENT
LOWpr_agent/algo/utils.py621COMMENT
LOWpr_agent/algo/ai_handlers/litellm_ai_handler.py61 # forwards a truthy litellm.api_key, which would authenticate this requestCOMMENT
LOWpr_agent/algo/ai_handlers/litellm_ai_handler.py641 try:COMMENT
LOWpr_agent/algo/ai_handlers/litellm_ai_handler.py841 elif isinstance(model, str) and model.startswith("openrouter/"):COMMENT
LOWpr_agent/servers/gunicorn_config.py1import gcCOMMENT
LOWpr_agent/servers/gunicorn_config.py21#COMMENT
LOWpr_agent/servers/gunicorn_config.py41# sync class should handle most 'normal' types of workCOMMENT
LOWpr_agent/servers/gunicorn_config.py61#COMMENT
LOWpr_agent/servers/gunicorn_config.py161worker_connections = 1000COMMENT
LOWpr_agent/servers/gunicorn_config.py181# True or FalseCOMMENT
LOWpr_agent/servers/gunicorn_config.py201# umask - A mask for file permissions written by Gunicorn. Note thatCOMMENT
LOWpr_agent/servers/gunicorn_config.py221group = NoneCOMMENT
LOWpr_agent/servers/gunicorn_config.py241#COMMENT
LOWpr_agent/servers/gunicorn_config.py261#COMMENT
LOWtests/unittest/test_plain_diff_provider.py161def test_path_traversal_file_not_read(cfg, tmp_path, monkeypatch):COMMENT
LOWtests/unittest/test_fetching_sub_issues.py1# Currently doing API calls - wrong !COMMENT
LOWtests/unittest/test_fetching_sub_issues.py21# github_provider = GithubProvider()COMMENT
LOWtests/unittest/test_fetching_sub_issues.py41# # Verify ticket structureCOMMENT
LOWtests/unittest/test_fetching_sub_issues.py61#COMMENT
LOWtests/unittest/test_fetching_sub_issues.py81#COMMENT
LOWtests/unittest/test_fetching_sub_issues.py101# Test fetch_sub_issues() to ensure an empty set is returned for an issue with no sub-issues.COMMENT
LOWdocs/docs/installation/azure.md1## Azure DevOps PipelineCOMMENT
Docstring Block Structure6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHpr_agent/tools/pr_generate_labels.py105 Prepare the AI prediction for the PR labels based on the provided model. Args: model (str)STRING
HIGHpr_agent/algo/utils.py775 Fix broken or incomplete JSON messages and return the parsed JSON data. Args: json_message (str): A stSTRING
HIGHpr_agent/algo/utils.py842 Update the settings of the Dynaconf object based on the arguments passed to the function. Args: args: STRING
HIGHpr_agent/algo/utils.py1258 Clip the number of tokens in a string to a maximum number of tokens. This function limits text to a specified STRING
HIGHpr_agent/algo/pr_processing.py394 Retrieves the diff files from a Git provider, sorts them by main language, and generates patches for each file. STRING
HIGHpr_agent/algo/ai_handlers/litellm_helpers.py153 Process LITELLM.EXTRA_BODY configuration and update kwargs accordingly. Args: kwargs: The current kwarSTRING
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALtests/unittest/test_bitbucket_provider.py116 mock_get_logger.return_value.opt.return_value.warning.assert_called_once_with(CODE
CRITICALtests/unittest/test_gitlab_provider.py555 mock_get_logger.return_value.opt.return_value.warning.assert_called_once_with(CODE
AI Slop Vocabulary6 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMpr_agent/settings/configuration.toml475enable_auto_best_practices = true # public - general flag to disable all auto best practices usageSTRING
MEDIUMpr_agent/settings/configuration.toml476utilize_auto_best_practices = true # public - disable usage of auto best practices in the 'improve' toolSTRING
MEDIUMpr_agent/settings/configuration.toml477extra_instructions = "" # public - extra instructions to the auto best practices generation promptSTRING
MEDIUMpr_agent/git_providers/github_provider.py1086 # Be robust to providers built without full __init__ (e.g. __new__ in tests/helpers):COMMENT
LOWpr_agent/git_providers/git_provider.py296 # if the existing description wasn't generated by the pr-agent, just return it as-isCOMMENT
MEDIUMtests/unittest/test_pr_questions_helpers.py88 # rather than the exact full match, to remain robust to that quirk.COMMENT
Redundant / Tautological Comments10 hits · 14 pts
SeverityFileLineSnippetContext
LOWpr_agent/tools/pr_help_docs.py107 # Check if it's an underline (heading is above it)COMMENT
LOWpr_agent/tools/pr_help_docs.py409 # Check if file has one of the specified extensionsCOMMENT
LOWpr_agent/tools/pr_help_docs.py525 # Check if the updated list of documents does not exceed limits and trim if it does:COMMENT
LOWpr_agent/git_providers/github_provider.py1199 if parsed_url.path.startswith('/api/v3'): #Check if came from github appCODE
LOWpr_agent/git_providers/github_provider.py1203 if 'api.github.com' in parsed_url.netloc or '/api/v3' in issue_url: #Check if came from github appCODE
LOWpr_agent/agent/pr_agent.py201 # Check if the specific language instruction is already present to avoid duplicationCOMMENT
LOWpr_agent/servers/bitbucket_server_webhook.py113 # Check if ALL files are outside allowed foldersCOMMENT
LOWpr_agent/servers/bitbucket_server_webhook.py239 # Check if the parsed object is a list of stringsCOMMENT
LOWpr_agent/servers/github_action_runner.py92 # Check if required environment variables are setCOMMENT
LOWpr_agent/servers/bitbucket_app.py260 # Check if the PR should be processedCOMMENT
Fake / Example Data12 hits · 12 pts
SeverityFileLineSnippetContext
LOWpr_agent/algo/ai_handlers/litellm_ai_handler.py29DUMMY_LITELLM_API_KEY = "dummy_key" # placeholder set when no OpenAI key is configuredCODE
LOWtests/unittest/test_extra_config_url.py160 fake_token = "TEST-AUTH-TOKEN-NOT-REAL"CODE
LOWtests/unittest/test_extra_config_url.py161 _CapturingHandler.require_header = ("Private-Token", fake_token)CODE
LOWtests/unittest/test_extra_config_url.py162 monkeypatch.setenv("PR_AGENT_EXTRA_CONFIG_AUTH_HEADER", f"PRIVATE-TOKEN: {fake_token}")CODE
LOWtests/unittest/test_extra_config_url.py170 assert _CapturingHandler.captured_headers.get("Private-Token") == fake_tokenCODE
LOWtests/unittest/test_gitlab_provider.py82 "GITLAB.PERSONAL_ACCESS_TOKEN": "fake_token"CODE
LOWtests/unittest/test_gitlab_provider.py1153 "GITLAB.PERSONAL_ACCESS_TOKEN": "fake_token",CODE
LOWtests/unittest/test_litellm_api_key_guard.py144 # Set after init so __init__'s own dummy-key assignment doesn't overwrite itCOMMENT
LOWtests/unittest/test_litellm_api_key_guard.py507 out with "dummy_key". Keeping the placeholder in ``litellm.openai_key`` — whichSTRING
LOWtests/unittest/test_litellm_api_key_guard.py583 "dummy_key" there for the lifetime of the process, and every later requestSTRING
LOWtests/unittest/test_git_provider_utils.py169 "settings": b"[github]\nuser_token = \"dummy-value\"\n[pr_reviewer]\nnum_max_findings =",CODE
LOWtests/unittest/test_git_provider_utils.py180 assert "dummy-value" not in provider.comments[1]CODE
Overly Generic Function Names11 hits · 12 pts
SeverityFileLineSnippetContext
LOWpr_agent/agent/pr_agent.py230 async def handle_request(self, pr_url, request, notify=None) -> bool:CODE
LOWpr_agent/servers/gitlab_webhook.py51async def handle_request(api_url: str, body: str, log_context: dict, sender_id: str, notify=None):CODE
LOWpr_agent/servers/bitbucket_server_webhook.py30def handle_request(CODE
LOWpr_agent/servers/github_app.py311async def handle_request(body: Dict[str, Any], event: str):CODE
LOWpr_agent/servers/gitea_app.py63async def handle_request(body: Dict[str, Any], event: str):CODE
LOWtests/unittest/test_extra_config_url.py289 async def handle_request(self, *_args, **_kwargs):CODE
LOWtests/unittest/test_github_action_runner_core.py185 async def handle_request(self, url, body, notify=None):CODE
LOWtests/unittest/test_github_action_runner_core.py235 async def handle_request(self, url, body, notify=None):CODE
LOWtests/unittest/test_cli_plain_diff_mode.py84 async def handle_request(self, target, request, notify=None):CODE
LOWtests/unittest/test_cli_plain_diff_mode.py100 async def handle_request(self, target, request, notify=None):CODE
LOWtests/unittest/test_webhook_logic_core.py236 async def handle_request(self, _url, command, notify=None):CODE
Modern AI Meta-Vocabulary3 hits · 7 pts
SeverityFileLineSnippetContext
MEDIUMdocs/docs/usage-guide/changing_a_model.md563Keep the `openai/` prefix on the model name, whatever OrcaRouter model ID you use (`openai/anthropic/claude-fable-5`, `oCODE
MEDIUMdocs/docs/usage-guide/changing_a_model.md575custom_model_max_tokens = 400000 # the context window Neon publishes for the modelCODE
MEDIUMdocs/docs/core-abilities/dynamic_context.md30## Challenges of expanding the context windowCOMMENT
AI Structural Patterns8 hits · 5 pts
SeverityFileLineSnippetContext
LOWpr_agent/tools/pr_update_changelog.py138CODE
LOWpr_agent/tools/pr_code_suggestions.py365CODE
LOWpr_agent/tools/pr_code_suggestions.py585CODE
LOWpr_agent/git_providers/bitbucket_provider.py520CODE
LOWpr_agent/servers/help.py20CODE
LOWtests/unittest/test_pr_description_output_core.py51CODE
LOWtests/unittest/test_ticket_extraction_async.py70CODE
LOWtests/unittest/test_gitlab_provider.py39CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpr_agent/git_providers/codecommit_provider.py371 # TODO: implement support for multiple targets in one CodeCommit PRCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpr_agent/git_providers/git_provider.py160 # Example usage:COMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpr_agent/algo/skills_loader.py308def _set_cached_context(cache_settings: Tuple[bool, Tuple[object, ...], Optional[int]], value: str) -> None:CODE