Repository Analysis

ahmedkhaleel2004/gitdiagram

Free, simple, fast interactive diagrams for any GitHub repository

8.2 Low AI signal View on GitHub
8.2
Adjusted Score
8.2
Raw Score
100%
Time Factor
2026-05-25
Last Push
15,657
Stars
TypeScript
Language
19,528
Lines of Code
162
Files
160
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 0LOW 160

Pattern Findings

160 matches across 4 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers132 hits · 132 pts
SeverityFileLineSnippet
LOWbackend/app/routers/generate.py192def _is_openai_quota_exhausted_error(message: str) -> bool:
LOWbackend/app/routers/generate.py202def _normalize_generation_error(
LOWbackend/app/routers/generate.py451 def schedule_public_browse_index_update(
LOWbackend/app/services/github_service.py178 def get_github_file_paths_as_list(self, username: str, repo: str, branch: str) -> str:
LOWbackend/app/services/model_config.py29def supports_exact_input_token_count(provider: AIProvider) -> bool:
LOWbackend/app/services/model_config.py33def should_use_exact_input_token_count(
LOWbackend/app/services/graph_service.py139def format_graph_validation_feedback(issues: list[GraphValidationIssue]) -> str:
LOWbackend/app/services/openai_service.py59 def _get_response_failure_message(response: object | None) -> str:
LOWbackend/app/services/openai_service.py73 def _is_recoverable_max_output_incomplete(
LOWbackend/app/services/openai_service.py229 async def generate_structured_output(
LOWbackend/app/services/diagram_state_repository.py189 def _normalize_browse_index_entries(
LOWbackend/app/services/diagram_state_repository.py236 def upsert_browse_index_entry(
LOWbackend/app/services/diagram_state_repository.py255 def upsert_browse_index_entries(
LOWbackend/app/services/diagram_state_repository.py293 def update_artifact_latest_session_summary(
LOWbackend/app/services/diagram_state_repository.py316 def save_successful_diagram_state(
LOWbackend/app/services/diagram_state_repository.py547 def artifact_storage_is_configured(self) -> bool:
LOWbackend/app/services/diagram_state_repository.py550 def status_store_is_configured(self) -> bool:
LOWbackend/app/services/diagram_state_repository.py559 def persist_terminal_session_audit(
LOWbackend/app/services/diagram_state_repository.py605 def save_successful_diagram_state(
LOWbackend/app/services/diagram_state_repository.py644 def upsert_public_browse_index_entry(
LOWbackend/app/services/diagram_state_repository.py661 def upsert_public_browse_index_entries(
LOWbackend/app/services/diagram_state_repository.py670 def reserve_complimentary_quota(
LOWbackend/app/services/diagram_state_repository.py685 def finalize_complimentary_quota(
LOWbackend/app/services/pricing.py48def _strip_date_snapshot_suffix(model: str) -> str:
LOWbackend/app/services/pricing.py99def estimate_text_token_cost_usd(
LOWbackend/app/services/pricing.py111def normalize_generation_usage(usage: Any) -> GenerationTokenUsage | None:
LOWbackend/app/services/pricing.py219def create_estimate_cost_summary(
LOWbackend/app/services/complimentary_gate.py63def is_complimentary_gate_enabled() -> bool:
LOWbackend/app/services/complimentary_gate.py67def should_apply_complimentary_gate(
LOWbackend/app/services/complimentary_gate.py80def get_complimentary_model_family() -> str:
LOWbackend/app/services/complimentary_gate.py86def model_matches_complimentary_family(model: str) -> bool:
LOWbackend/app/services/complimentary_gate.py90def get_complimentary_daily_limit_tokens() -> int:
LOWbackend/app/services/complimentary_gate.py97def get_complimentary_quota_date_utc(now: datetime | None = None) -> str:
LOWbackend/app/services/complimentary_gate.py102def get_complimentary_quota_reset_at(now: datetime | None = None) -> str:
LOWbackend/app/services/complimentary_gate.py112def get_complimentary_quota_bucket(model: str) -> str:
LOWbackend/app/services/complimentary_gate.py116def build_complimentary_admission_tokens(
LOWbackend/app/services/complimentary_gate.py141def get_complimentary_denial_message() -> str:
LOWbackend/app/services/complimentary_gate.py145def get_complimentary_provider_mismatch_message() -> str:
LOWbackend/app/services/complimentary_gate.py149def get_complimentary_model_mismatch_message() -> str:
LOWbackend/app/services/complimentary_gate.py153def admit_complimentary_quota(
LOWbackend/app/services/complimentary_gate.py184def finalize_complimentary_quota(
LOWbackend/app/services/cost_estimator.py17async def _count_prompt_input_tokens(
LOWbackend/tests/test_complimentary_gate.py7def test_get_complimentary_model_family_normalizes_snapshot(monkeypatch):
LOWbackend/tests/test_complimentary_gate.py16def test_build_complimentary_admission_tokens():
LOWbackend/tests/conftest.py27def block_live_diagram_storage(monkeypatch):
LOWbackend/tests/test_generate_router.py31def test_cors_preflight_sets_long_max_age():
LOWbackend/tests/test_generate_router.py44def test_public_browse_index_updater_batches_pending_updates():
LOWbackend/tests/test_generate_router.py48 def upsert_public_browse_index_entries(self, *, entries):
LOWbackend/tests/test_generate_router.py93def test_generate_cost_success(monkeypatch):
LOWbackend/tests/test_generate_router.py106 async def unexpected_count_input_tokens(**kwargs):
LOWbackend/tests/test_generate_router.py122def test_generate_cost_uses_exact_count_when_user_api_key_is_provided(monkeypatch):
LOWbackend/tests/test_generate_router.py161def test_generate_cost_blocks_provider_mismatch_when_complimentary_gate_is_enabled(monkeypatch):
LOWbackend/tests/test_generate_router.py179def test_generate_stream_retries_invalid_graph_once(monkeypatch):
LOWbackend/tests/test_generate_router.py202 async def fake_estimate_generation_cost(**kwargs):
LOWbackend/tests/test_generate_router.py277 async def fake_generate_structured_output(**kwargs):
LOWbackend/tests/test_generate_router.py309def test_generate_stream_blocks_when_daily_free_quota_is_exhausted(monkeypatch):
LOWbackend/tests/test_generate_router.py329 async def fake_estimate_generation_cost(**kwargs):
LOWbackend/tests/test_generate_router.py358def test_generate_stream_bypasses_quota_gate_for_user_api_keys(monkeypatch):
LOWbackend/tests/test_generate_router.py381 async def fake_estimate_generation_cost(**kwargs):
LOWbackend/tests/test_generate_router.py402 async def fake_generate_structured_output(**kwargs):
72 more matches not shown…
Excessive Try-Catch Wrapping14 hits · 14 pts
SeverityFileLineSnippet
LOWbackend/app/routers/generate.py124 except Exception as exc:
LOWbackend/app/routers/generate.py358 except Exception as exc:
LOWbackend/app/routers/generate.py373 except Exception:
LOWbackend/app/routers/generate.py409 except Exception as exc:
LOWbackend/app/routers/generate.py442 except Exception as exc:
LOWbackend/app/routers/generate.py723 except Exception:
LOWbackend/app/routers/generate.py970 except Exception as exc:
LOWbackend/app/routers/generate.py980 except Exception:
LOWbackend/app/routers/generate.py1022 except Exception:
LOWbackend/app/services/openai_service.py183 except Exception:
LOWbackend/app/services/openai_service.py188 except Exception as exc:
LOWbackend/app/services/openai_service.py262 except Exception as exc:
LOWbackend/app/services/mermaid_service.py49 except Exception as exc:
LOWbackend/app/services/cost_estimator.py41 except Exception:
Unused Imports12 hits · 12 pts
SeverityFileLineSnippet
LOWbackend/app/routers/generate.py1
LOWbackend/app/core/observability.py1
LOWbackend/app/core/errors.py1
LOWbackend/app/services/github_service.py1
LOWbackend/app/services/model_config.py1
LOWbackend/app/services/graph_service.py1
LOWbackend/app/services/openai_service.py1
LOWbackend/app/services/diagram_state_repository.py1
LOWbackend/app/services/pricing.py1
LOWbackend/app/services/mermaid_service.py1
LOWbackend/app/services/complimentary_gate.py1
LOWbackend/app/services/cost_estimator.py1
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippet
LOWbackend/app/routers/generate.py370
LOWbackend/app/routers/generate.py386