Prometheus-based Kubernetes Resource Recommendations
This report presents the forensic synthetic code analysis of robusta-dev/krr, a Python project with 4,670 GitHub stars. SynthScan v2.0 examined 10,676 lines of code across 104 source files, recording 236 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 39.1 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).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
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.
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.
The scanner identified 236 distinct pattern matches across 13 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/formatters/test_csv_formatter.py | 34 | "hpa": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 104 | "kubeconfig": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 105 | "impersonate_user": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 106 | "impersonate_group": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 109 | "selector": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 112 | "prometheus_url": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 113 | "prometheus_auth_header": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 116 | "prometheus_cluster_label": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 117 | "prometheus_label": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 119 | "eks_managed_prom_profile_name": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 120 | "eks_access_key": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 121 | "eks_secret_key": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 123 | "eks_managed_prom_region": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 124 | "coralogix_token": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 131 | "width": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 132 | "file_output": null, | CODE |
| HIGH⚡ | tests/formatters/test_csv_formatter.py | 133 | "slack_output": null, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/__init__.py | 1 | CODE | |
| LOW | robusta_krr/main.py | 1 | CODE | |
| LOW | robusta_krr/main.py | 16 | CODE | |
| LOW | robusta_krr/core/runner.py | 5 | CODE | |
| LOW | robusta_krr/core/runner.py | 6 | CODE | |
| LOW | robusta_krr/core/runner.py | 14 | CODE | |
| LOW | robusta_krr/core/abstract/formatters.py | 1 | CODE | |
| LOW | robusta_krr/core/abstract/strategies.py | 1 | CODE | |
| LOW | robusta_krr/core/abstract/strategies.py | 5 | CODE | |
| LOW | robusta_krr/core/abstract/strategies.py | 15 | CODE | |
| LOW | robusta_krr/core/abstract/strategies.py | 140 | CODE | |
| LOW | robusta_krr/core/models/config.py | 1 | CODE | |
| LOW | robusta_krr/core/models/severity.py | 1 | CODE | |
| LOW | robusta_krr/core/models/result.py | 1 | CODE | |
| LOW | robusta_krr/core/models/allocations.py | 1 | CODE | |
| LOW | robusta_krr/core/integrations/openshift/__init__.py | 1 | CODE | |
| LOW | robusta_krr/core/integrations/openshift/__init__.py | 1 | CODE | |
| LOW | robusta_krr/core/integrations/prometheus/__init__.py | 1 | CODE | |
| LOW | robusta_krr/core/integrations/prometheus/__init__.py | 2 | CODE | |
| LOW | robusta_krr/core/integrations/prometheus/__init__.py | 2 | CODE | |
| LOW | robusta_krr/core/integrations/prometheus/__init__.py | 3 | CODE | |
| LOW | robusta_krr/core/integrations/prometheus/loader.py | 1 | CODE | |
| LOW | robusta_krr/core/integrations/prometheus/loader.py | 8 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/prometheus_utils.py | 1 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 1 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 2 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 2 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 2 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 3 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 3 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 3 | CODE | |
| LOW | …a_krr/core/integrations/prometheus/metrics/__init__.py | 3 | CODE | |
| LOW | …busta_krr/core/integrations/prometheus/metrics/base.py | 1 | CODE | |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 35 | CODE | |
| LOW | …busta_krr/core/integrations/kubernetes/config_patch.py | 4 | CODE | |
| LOW | robusta_krr/strategies/__init__.py | 1 | CODE | |
| LOW | robusta_krr/strategies/__init__.py | 2 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 1 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 2 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 3 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 4 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 5 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 6 | CODE | |
| LOW | robusta_krr/formatters/__init__.py | 7 | CODE | |
| LOW | robusta_krr/formatters/table.py | 14 | CODE | |
| LOW | robusta_krr/utils/version.py | 2 | CODE | |
| LOW | robusta_krr/utils/version.py | 4 | CODE | |
| LOW | robusta_krr/api/formatters.py | 1 | CODE | |
| LOW | robusta_krr/api/formatters.py | 1 | CODE | |
| LOW | robusta_krr/api/formatters.py | 1 | CODE | |
| LOW | robusta_krr/api/models.py | 1 | CODE | |
| LOW | robusta_krr/api/models.py | 1 | CODE | |
| LOW | robusta_krr/api/models.py | 1 | CODE | |
| LOW | robusta_krr/api/models.py | 1 | CODE | |
| LOW | robusta_krr/api/models.py | 2 | CODE | |
| LOW | robusta_krr/api/models.py | 2 | CODE | |
| LOW | robusta_krr/api/models.py | 2 | CODE | |
| LOW | robusta_krr/api/models.py | 3 | CODE | |
| LOW | robusta_krr/api/models.py | 3 | CODE | |
| LOW | robusta_krr/api/models.py | 4 | CODE | |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/core/runner.py | 82 | def __check_newer_version_available(self, current_version: str, latest_version: str) -> bool: | CODE |
| LOW⚡ | robusta_krr/core/runner.py | 262 | def _extract_storage_info_from_sas(self, sas_url: str) -> tuple[str, str]: | CODE |
| LOW | robusta_krr/core/runner.py | 326 | async def _calculate_object_recommendations(self, object: K8sObjectData) -> Optional[RunResult]: | CODE |
| LOW | robusta_krr/core/runner.py | 404 | async def _gather_object_allocations(self, k8s_object: K8sObjectData) -> Optional[ResourceScan]: | CODE |
| LOW | robusta_krr/core/models/config.py | 122 | def validate_prometheus_other_headers(cls, headers: Union[list[str], dict[str, str]]) -> dict[str, str]: | CODE |
| LOW | robusta_krr/core/models/config.py | 150 | def validate_job_grouping_labels(cls, v: Union[list[str], str, None]) -> Union[list[str], None]: | CODE |
| LOW | robusta_krr/core/models/severity.py | 43 | def register_severity_calculator(resource_type: ResourceType) -> Callable[[SeverityCalculator], SeverityCalculator]: | CODE |
| LOW | robusta_krr/core/models/severity.py | 83 | def default_severity_calculator( | CODE |
| LOW | robusta_krr/core/models/severity.py | 111 | def memory_severity_calculator( | CODE |
| LOW | robusta_krr/core/models/allocations.py | 32 | def format_recommendation_value(value: RecommendationValue) -> str: | CODE |
| LOW | …a_krr/core/integrations/prometheus/prometheus_utils.py | 24 | def generate_prometheus_config( | CODE |
| LOW | …busta_krr/core/integrations/prometheus/metrics/base.py | 79 | def get_prometheus_cluster_label(self) -> str: | CODE |
| LOW | …ions/prometheus/metrics_service/base_metric_service.py | 49 | def get_prometheus_cluster_label(self) -> str: | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 193 | def _get_match_expression_filter(expression) -> str: | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 284 | async def _list_namespaced_or_global_objects_batched( | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 348 | async def _list_namespaced_or_global_objects( | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 841 | def _try_create_cluster_loader(self, cluster: Optional[str]) -> Optional[ClusterLoader]: | CODE |
| LOW | robusta_krr/strategies/simple_limit.py | 48 | def calculate_memory_proposal(self, data: PodsTimeData, max_oomkill: float = 0) -> float: | CODE |
| LOW | robusta_krr/strategies/simple_limit.py | 142 | def __calculate_memory_proposal( | STRING |
| LOW | robusta_krr/strategies/simple.py | 47 | def calculate_memory_proposal(self, data: PodsTimeData, max_oomkill: float = 0) -> float: | CODE |
| LOW | robusta_krr/strategies/simple.py | 140 | def __calculate_memory_proposal( | STRING |
| LOW | robusta_krr/formatters/csv_raw.py | 50 | def _format_request_recommend(item: ResourceScan, resource: ResourceType, selector: str) -> str: | CODE |
| LOW | robusta_krr/utils/patch.py | 13 | def patched_setter_pod_failure_policy(self, on_pod_conditions): | CODE |
| LOW | robusta_krr/common/ssl_utils.py | 9 | def append_custom_certificate(custom_ca: str) -> None: | CODE |
| LOW | robusta_krr/common/ssl_utils.py | 16 | def create_temporary_certificate(custom_ca: str) -> None: | CODE |
| LOW | tests/test_grouped_jobs.py | 59 | async def test_list_all_groupedjobs_with_limit(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 87 | def mock_build_scannable_object(item, container, kind): | CODE |
| LOW | tests/test_grouped_jobs.py | 132 | async def test_list_all_groupedjobs_with_different_namespaces(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 153 | def mock_build_scannable_object(item, container, kind): | CODE |
| LOW | tests/test_grouped_jobs.py | 187 | async def test_list_all_groupedjobs_with_cronjob_owner_reference(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 209 | def mock_build_scannable_object(item, container, kind): | CODE |
| LOW | tests/test_grouped_jobs.py | 231 | async def test_list_all_groupedjobs_no_grouping_labels(mock_kubernetes_loader): | CODE |
| LOW | tests/test_grouped_jobs.py | 244 | async def test_list_all_groupedjobs_multiple_labels(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 264 | def mock_build_scannable_object(item, container, kind): | CODE |
| LOW | tests/test_grouped_jobs.py | 290 | async def test_list_all_groupedjobs_job_in_multiple_groups(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 309 | def mock_build_scannable_object(item, container, kind): | CODE |
| LOW | tests/test_grouped_jobs.py | 353 | async def test_groupedjobs_respects_global_batch_limit_across_namespaces(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 376 | async def test_groupedjobs_calls_each_explicit_namespace(mock_kubernetes_loader, mock_config): | CODE |
| LOW | tests/test_grouped_jobs.py | 392 | def mock_build_scannable_object(item, container, kind): | CODE |
| LOW | tests/test_grouped_jobs_metrics_logic.py | 8 | def test_grouped_job_extracts_job_names(): | CODE |
| LOW | tests/test_grouped_jobs_metrics_logic.py | 44 | def test_grouped_job_with_different_namespaces(): | CODE |
| LOW | tests/test_grouped_jobs_metrics_logic.py | 85 | def test_grouped_job_prometheus_query_construction(): | CODE |
| LOW | tests/test_grouped_jobs_metrics_logic.py | 133 | def test_grouped_job_batched_queries(): | STRING |
| LOW⚡ | tests/test_grouped_jobs_metrics_logic.py | 171 | def test_grouped_job_fallback_logic(): | CODE |
| LOW | tests/test_grouped_jobs_metrics_logic.py | 200 | def test_lightweight_job_info_structure(): | CODE |
| LOW | tests/test_grouped_jobs_metrics_logic.py | 227 | def test_grouped_job_multiple_groups_metrics_extraction(): | CODE |
| LOW | tests/conftest.py | 39 | def mock_list_scannable_objects(): | CODE |
| LOW | tests/conftest.py | 77 | def mock_prometheus_load_pods(): | CODE |
| LOW | tests/conftest.py | 89 | def mock_prometheus_get_history_range(): | CODE |
| LOW | tests/test_app_imports.py | 44 | def test_app_files_have_correct_initial_lines(file_path, file_name, expected_lines): | CODE |
| LOW | tests/test_krr.py | 72 | def test_cluster_namespace_list( | CODE |
| LOW | tests/test_runner.py | 19 | def test_exclude_severity_option(args: list[str], expected_exit_code: int) -> None: | CODE |
| LOW | tests/models/test_resource_allocations.py | 26 | def test_resource_allocation_supported_formats( | CODE |
| LOW | enforcer/patch_manager.py | 232 | def patch_container_resources( | CODE |
| LOW | enforcer/utils.py | 9 | def append_custom_certificate(custom_ca: str) -> None: | CODE |
| LOW | enforcer/utils.py | 16 | def create_temporary_certificate(custom_ca: str) -> None: | CODE |
| LOW | enforcer/resources/owner_store.py | 27 | def finalize_owner_initialization(self): | CODE |
| LOW | enforcer/resources/owner_store.py | 130 | def _cleanup_deleted_replica_sets(self): | CODE |
| LOW | examples/custom_severity_calculator.py | 12 | def percentage_severity_calculator( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | robusta_krr/core/abstract/strategies.py | 123 | # This method is intended to calculate resource recommendation based on history data and kubernetes object data. | COMMENT |
| MEDIUM⚡ | robusta_krr/core/abstract/strategies.py | 128 | # This method is intended to return a strategy by its name. | COMMENT |
| MEDIUM⚡ | robusta_krr/core/abstract/strategies.py | 137 | # This method is intended to return all the available strategies. | COMMENT |
| MEDIUM⚡ | robusta_krr/core/abstract/strategies.py | 144 | # This method is intended to return the type of settings used in strategy. | COMMENT |
| MEDIUM | tests/test_grouped_jobs.py | 51 | # Create a mock container with a proper name | COMMENT |
| MEDIUM | tests/test_grouped_jobs.py | 293 | # Create a job that matches multiple grouping labels | COMMENT |
| MEDIUM | tests/test_grouped_jobs_metrics_logic.py | 11 | # Create a mock GroupedJob object | COMMENT |
| MEDIUM | tests/test_grouped_jobs_metrics_logic.py | 88 | # Create a mock GroupedJob object | COMMENT |
| MEDIUM | tests/test_grouped_jobs_metrics_logic.py | 136 | # Create a grouped job with many lightweight jobs | COMMENT |
| MEDIUM⚡ | tests/test_grouped_jobs_metrics_logic.py | 174 | # Create a GroupedJob without _grouped_jobs | COMMENT |
| MEDIUM⚡ | tests/test_grouped_jobs_metrics_logic.py | 180 | # Create a mock API resource that doesn't have _grouped_jobs | COMMENT |
| MEDIUM | tests/test_grouped_jobs_metrics_logic.py | 203 | # Create a LightweightJobInfo instance | COMMENT |
| MEDIUM | tests/test_grouped_jobs_metrics_logic.py | 230 | # Create a job that appears in multiple groups | COMMENT |
| MEDIUM | enforcer/enforcer_main.py | 53 | # Define the mention pattern regex | COMMENT |
| MEDIUM | helm/krr-enforcer/templates/enforcer-cert-job.yaml | 93 | # Create a Secret with the certificates | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/core/runner.py | 63 | except Exception as e: | CODE |
| LOW | robusta_krr/core/runner.py | 89 | except Exception: | CODE |
| LOW | robusta_krr/core/runner.py | 203 | except Exception as e: | CODE |
| LOW⚡ | robusta_krr/core/runner.py | 259 | except Exception as e: | CODE |
| LOW⚡ | robusta_krr/core/runner.py | 272 | except Exception as e: | CODE |
| LOW | robusta_krr/core/runner.py | 361 | except Exception as e: | CODE |
| LOW | robusta_krr/core/runner.py | 477 | except Exception as e: | CODE |
| LOW | robusta_krr/core/runner.py | 502 | except Exception: | CODE |
| LOW | robusta_krr/core/runner.py | 574 | except Exception as e: | CODE |
| LOW | robusta_krr/core/integrations/prometheus/loader.py | 94 | except Exception as e: | CODE |
| LOW | robusta_krr/core/integrations/prometheus/loader.py | 101 | except Exception as e: | CODE |
| MEDIUM | robusta_krr/core/integrations/prometheus/loader.py | 98 | def get_cluster_summary(self) -> Dict[str, Any]: | CODE |
| LOW | …busta_krr/core/integrations/prometheus/metrics/base.py | 134 | except Exception as e: | CODE |
| LOW | …ometheus/metrics_service/prometheus_metrics_service.py | 216 | except Exception: | CODE |
| LOW | …ometheus/metrics_service/prometheus_metrics_service.py | 283 | except Exception as e: | STRING |
| MEDIUM | …ometheus/metrics_service/prometheus_metrics_service.py | 173 | def get_cluster_names(self) -> Optional[List[str]]: | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 582 | except Exception as e: | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 663 | except Exception as e: | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 788 | except Exception as e: | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 844 | except Exception as e: | CODE |
| MEDIUM | robusta_krr/core/integrations/kubernetes/__init__.py | 785 | def _try_list_hpa(self) -> dict[HPAKey, HPAData]: | CODE |
| LOW | robusta_krr/utils/version.py | 32 | except Exception: | CODE |
| LOW | robusta_krr/utils/version.py | 44 | except Exception: | CODE |
| LOW | robusta_krr/utils/intro.py | 20 | except Exception as e1: | CODE |
| LOW | robusta_krr/utils/intro.py | 25 | except Exception as e2: | CODE |
| MEDIUM | robusta_krr/utils/intro.py | 13 | def fetch_intro_message() -> str: | CODE |
| LOW | enforcer/enforcer_main.py | 179 | except Exception as e: | CODE |
| LOW | enforcer/enforcer_main.py | 240 | except Exception as e: | CODE |
| LOW | enforcer/resources/recommendation_store.py | 50 | except Exception: | CODE |
| LOW | enforcer/resources/recommendation_store.py | 71 | except Exception as e: | CODE |
| LOW | enforcer/resources/owner_store.py | 53 | except Exception: | CODE |
| LOW | enforcer/resources/owner_store.py | 94 | except Exception: | CODE |
| LOW | enforcer/resources/owner_store.py | 150 | except Exception as e: | CODE |
| LOW | enforcer/dal/supabase_dal.py | 216 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ns/prometheus/metrics_service/mimir_metrics_service.py | 0 | finds the victoria metrics url using selectors. args: api_client (optional[apiclient]): a kubernetes api client. default | STRING |
| HIGH | …ometheus/metrics_service/prometheus_metrics_service.py | 0 | finds the victoria metrics url using selectors. args: api_client (optional[apiclient]): a kubernetes api client. default | STRING |
| HIGH | …s/prometheus/metrics_service/thanos_metrics_service.py | 0 | finds the victoria metrics url using selectors. args: api_client (optional[apiclient]): a kubernetes api client. default | STRING |
| HIGH | …prometheus/metrics_service/victoria_metrics_service.py | 0 | finds the victoria metrics url using selectors. args: api_client (optional[apiclient]): a kubernetes api client. default | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/core/runner.py | 108 | CODE | |
| LOW | robusta_krr/core/runner.py | 171 | CODE | |
| LOW | robusta_krr/core/models/result.py | 31 | CODE | |
| LOW | …ometheus/metrics_service/prometheus_metrics_service.py | 287 | CODE | |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 63 | CODE | |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 284 | CODE | |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 538 | CODE | |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 597 | CODE | |
| LOW | robusta_krr/formatters/csv_raw.py | 30 | CODE | |
| LOW | enforcer/params_utils.py | 21 | CODE | |
| LOW | enforcer/patch_manager.py | 138 | CODE | |
| LOW | enforcer/resources/kubernetes_resource_loader.py | 21 | CODE | |
| LOW | enforcer/resources/recommendation_store.py | 24 | CODE | |
| LOW | enforcer/resources/owner_store.py | 63 | CODE | |
| LOW | enforcer/resources/owner_store.py | 99 | CODE | |
| LOW | enforcer/dal/supabase_dal.py | 80 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | robusta_krr/core/abstract/formatters.py | 52 | Find a formatter by name in the registry. Args: name (str): The name of the formatter. Returns: | STRING |
| HIGH | enforcer/patch_manager.py | 16 | Convert Kubernetes CPU request string to float number of CPUs. Args: cpu_str: CPU string like "100m", | STRING |
| HIGH | enforcer/patch_manager.py | 55 | Convert Kubernetes memory request string to bytes. Args: mem_str: Memory string like "128Mi", "1Gi", " | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/__init__.py | 4 | __all__ = ["run", "__version__"] | CODE |
| LOW | robusta_krr/core/abstract/formatters.py | 82 | __all__ = ["register", "find"] | CODE |
| LOW⚡ | robusta_krr/core/abstract/strategies.py | 153 | __all__ = [ | CODE |
| LOW | robusta_krr/core/models/config.py | 204 | def set_config(config: Config) -> None: | CODE |
| LOW | robusta_krr/core/integrations/openshift/__init__.py | 3 | __all__ = ["TOKEN_LOCATION", "load_token"] | CODE |
| LOW | robusta_krr/utils/intro.py | 41 | __all__ = ["load_intro_message"] | CODE |
| LOW | robusta_krr/api/formatters.py | 3 | __all__ = ["register", "find", "list_available"] | CODE |
| LOW | robusta_krr/api/models.py | 7 | __all__ = [ | CODE |
| LOW | robusta_krr/api/strategies.py | 3 | __all__ = ["BaseStrategy", "StrategySettings"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/main.py | 48 | return str # If the type is unknown, just use str and let pydantic handle it | CODE |
| LOW | robusta_krr/core/integrations/kubernetes/__init__.py | 69 | # just return the list if it's already initialized | COMMENT |
| LOW | enforcer/resources/owner_store.py | 34 | # Another thread is loading, just return | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/core/models/config.py | 236 | # NOTE: This class is just a proxy for _config. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/utils/version.py | 26 | # Check if there are uncommitted changes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | robusta_krr/main.py | 55 | CODE |