Repository Analysis

gitpython-developers/GitPython

GitPython is a python library used to interact with Git repositories.

33.1 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of gitpython-developers/GitPython, a Python project with 5,156 GitHub stars. SynthScan v2.0 examined 46,139 lines of code across 174 source files, recording 1050 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 33.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).

33.1
Adjusted Score
33.1
Raw Score
100%
Time Factor
2026-08-02
Last Push
5.2K
Stars
Python
Language
46.1K
Lines of Code
174
Files
1.1K
Pattern Hits
2026-08-02
Scan Date
0.14
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

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.

No multi-scan history yet — run the scanner again to build trend data.

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 22MEDIUM 193LOW 833

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 1050 distinct pattern matches across 15 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.

Self-Referential Comments142 hits · 428 pts
SeverityFileLineSnippetContext
MEDIUMcheck-version.sh3# This file is part of GitPython and is released under theCOMMENT
MEDIUMinit-tests-after-clone.sh3# This file is part of GitPython and is released under theCOMMENT
MEDIUMbuild-release.sh3# This file is part of GitPython and is released under theCOMMENT
MEDIUMfuzzing/oss-fuzz-scripts/build.sh3# This file is part of GitPython and is released under theCOMMENT
MEDIUM…ng/oss-fuzz-scripts/container-environment-bootstrap.sh3# This file is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_stats.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_tree.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_rev_parse.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_submodule.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_db.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_actor.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_blob_filter.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_docs.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_docs.py88 # Create a new head/branch.COMMENT
MEDIUMtest/test_docs.py90 new_branch = cloned_repo.create_head("feature") # Create a new branch ...CODE
MEDIUMtest/test_docs.py98 # Create a new tag reference.COMMENT
MEDIUMtest/test_docs.py149 # Create a local branch at the latest fetched master. We specify the nameCOMMENT
MEDIUMtest/test_docs.py188 # Create a new submodule and check it out on the spot, setup to track masterCOMMENT
MEDIUMtest/test_docs.py242 new_branch = repo.create_head("new") # Create a new one.CODE
MEDIUMtest/test_docs.py470 git_cmd.checkout("HEAD", b="my_new_branch") # Create a new branch.CODE
MEDIUMtest/test_imports.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_git.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_git.py347 # Create a shell script that doesn't do anything.COMMENT
MEDIUMtest/test_git.py387 # Create the child process that inherits the environment variable. The childCOMMENT
MEDIUMtest/test_fun.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/__init__.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_clone.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_util.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_diff.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_diff.py575 # Create a file beginning by a whitespaceCOMMENT
MEDIUMtest/test_refs.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_refs.py473 # Create a new branch that is likely to touch the file we changed.COMMENT
MEDIUMtest/test_refs.py564 # Create a new non-head ref just to be sure we handle it even if packed.COMMENT
MEDIUMtest/test_refs.py667 # Create a file containing a valid reference outside the repository. AttemptingCOMMENT
MEDIUMtest/tstrunner.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_installation.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_installation.py51 # Create a convenience function to run commands in it.COMMENT
MEDIUMtest/test_repo.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_repo.py987 # Create a repo and make sure it's pointing to the relocated .git directory.COMMENT
MEDIUMtest/test_reflog.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_config.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_config.py60 # Creating an additional config writer must fail due to exclusiveCOMMENT
MEDIUMtest/test_index.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_remote.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_remote.py300 # Create a new UN-shared repo and fetch into it after we pushed a change to theCOMMENT
MEDIUMtest/test_quick_doc.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_fixture_health.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_exc.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_blob.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_base.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_commit.py3# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/test_commit.py388 # Create a commit with Unicode in the message, and the author's name.COMMENT
MEDIUMtest/deprecation/test_basic.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/lib.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/__init__.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/test_toplevel.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/test_compat.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/test_remote_progress.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/test_types.py1# This module is part of GitPython and is released under theCOMMENT
MEDIUMtest/deprecation/test_cmd_git.py1# This module is part of GitPython and is released under theCOMMENT
82 more matches not shown…
Hyper-Verbose Identifiers349 hits · 340 pts
SeverityFileLineSnippetContext
LOWfuzzing/fuzz-targets/utils.py10def is_expected_exception_message(exception: Exception, error_message_list: List[str]) -> bool: # pragma: no coverCODE
LOWfuzzing/fuzz-targets/utils.py78def match_exception_with_traceback(exception_list: Set[Tuple[str, str]], exc_traceback) -> bool:CODE
LOWfuzzing/fuzz-targets/utils.py89def check_exception_against_list(exc_traceback, exception_file: str = "explicit-exceptions-list.txt") -> bool:CODE
LOWtest/test_tree.py80 def test_tree_modifier_ordering(self):CODE
LOWtest/test_tree.py170 def test_repo_lookup_string_path(self, rw_repo):CODE
LOWtest/test_tree.py177 def test_repo_lookup_pathlike_path(self, rw_repo):CODE
LOWtest/test_tree.py184 def test_repo_lookup_invalid_string_path(self, rw_repo):CODE
LOWtest/test_tree.py190 def test_repo_lookup_invalid_pathlike_path(self, rw_repo):CODE
LOWtest/test_tree.py196 def test_repo_lookup_nested_string_path(self, rw_repo):CODE
LOWtest/test_tree.py203 def test_repo_lookup_nested_pathlike_path(self, rw_repo):CODE
LOWtest/test_tree.py210 def test_repo_lookup_folder_string_path(self, rw_repo):CODE
LOWtest/test_tree.py217 def test_repo_lookup_folder_pathlike_path(self, rw_repo):CODE
LOWtest/test_rev_parse.py61def test_rev_parse_names_hex_and_describe_forms(rev_parse_repo):CODE
LOWtest/test_rev_parse.py79def test_rev_parse_navigation_and_peeling(rev_parse_repo):CODE
LOWtest/test_rev_parse.py104def test_rev_parse_tree_and_index_paths(rev_parse_repo):CODE
LOWtest/test_rev_parse.py115def test_rev_parse_reflog_selectors(rev_parse_repo):CODE
LOWtest/test_rev_parse.py133def test_rev_parse_commit_message_search(rev_parse_repo):CODE
LOWtest/test_rev_parse.py143def test_rev_parse_rejects_invalid_object_specs(rev_parse_repo):CODE
LOWtest/test_submodule.py700 def test_iter_items_from_nonexistent_hash(self):CODE
LOWtest/test_submodule.py705 def test_iter_items_from_invalid_hash(self):CODE
LOWtest/test_submodule.py713 def test_deinit_calls_git_submodule(self, rwdir):CODE
LOWtest/test_submodule.py751 def test_update_to_latest_revision_after_deinit_fetches_remote(self, rwdir):CODE
LOWtest/test_submodule.py771 def test_update_after_deinit_fetches_new_gitlink_commit(self, rwdir):CODE
LOWtest/test_submodule.py797 def test_update_after_deinit_refuses_non_empty_checkout(self, rwdir):CODE
LOWtest/test_submodule.py823 def test_update_after_deinit_without_init_does_not_restore_checkout(self, rwdir):CODE
LOWtest/test_submodule.py838 def test_dry_run_update_after_deinit_does_not_restore_checkout(self, rwdir):CODE
LOWtest/test_submodule.py853 def test_update_after_deinit_restores_nested_checkout(self, rwdir):CODE
LOWtest/test_submodule.py914 def test_update_submodule_with_relative_path(self, rwdir):CODE
LOWtest/test_submodule.py930 def test_list_only_valid_submodules(self, rwdir):CODE
LOWtest/test_submodule.py957 def test_git_submodules_and_add_sm_with_new_commit(self, rwdir):CODE
LOWtest/test_submodule.py1024 def test_git_submodule_compatibility(self, rwdir):CODE
LOWtest/test_submodule.py1111 def test_ignore_non_submodule_file(self, rwdir):CODE
LOWtest/test_submodule.py1249 def test_to_relative_path_with_super_at_root_drive(self):CODE
LOWtest/test_submodule.py1272 def test_update_clone_multi_options_argument(self, rwdir):CODE
LOWtest/test_submodule.py1296 def test_update_no_clone_multi_options_argument(self, rwdir):CODE
LOWtest/test_submodule.py1321 def test_add_clone_multi_options_argument(self, rwdir):CODE
LOWtest/test_submodule.py1341 def test_add_no_clone_multi_options_argument(self, rwdir):CODE
LOWtest/test_submodule.py1355 def test_add_does_not_expand_environment_variables_in_url(self, rwdir):CODE
LOWtest/test_submodule.py1369 def test_submodule_add_unsafe_url(self, rw_repo):CODE
LOWtest/test_submodule.py1383 def test_submodule_add_unsafe_url_allowed(self, rw_repo):CODE
LOWtest/test_submodule.py1399 def test_submodule_add_unsafe_options(self, rw_repo):CODE
LOWtest/test_submodule.py1415 def test_submodule_add_unsafe_options_allowed(self, rw_repo):CODE
LOWtest/test_submodule.py1452 def test_submodule_update_unsafe_url(self, rw_repo):CODE
LOWtest/test_submodule.py1467 def test_submodule_update_unsafe_url_allowed(self, rw_repo):CODE
LOWtest/test_submodule.py1484 def test_submodule_update_unsafe_options(self, rw_repo):CODE
LOWtest/test_submodule.py1501 def test_submodule_update_unsafe_options_are_checked_after_splitting_multi_options(self, rw_repo):CODE
LOWtest/test_submodule.py1512 def test_submodule_update_unsafe_options_allowed(self, rw_repo):CODE
LOWtest/test_submodule.py1538 def test_submodule_update_relative_url(self, rwdir):CODE
LOWtest/test_actor.py12 def test_from_string_should_separate_name_and_email(self):CODE
LOWtest/test_actor.py25 def test_from_string_should_handle_just_name(self):CODE
LOWtest/test_actor.py30 def test_should_display_representation(self):CODE
LOWtest/test_actor.py34 def test_str_should_alias_name(self):CODE
LOWtest/test_docs.py207 def test_references_and_objects(self, rw_dir):CODE
LOWtest/test_imports.py9def test_git_util_attribute_is_git_index_util():CODE
LOWtest/test_imports.py21def test_git_index_util_attribute_is_git_index_util():CODE
LOWtest/test_imports.py26def test_separate_git_util_module_exists():CODE
LOWtest/test_git.py177 def test_check_unsafe_options_does_not_treat_short_options_as_abbreviations(self):CODE
LOWtest/test_git.py184 def test_check_unsafe_options_does_not_treat_option_values_as_abbreviations(self):CODE
LOWtest/test_git.py187 def test_check_unsafe_options_rejects_joined_unsafe_short_options(self):CODE
LOWtest/test_git.py274 def test_it_logs_istream_summary_for_stdin(self, case):CODE
289 more matches not shown…
Unused Imports251 hits · 220 pts
SeverityFileLineSnippetContext
LOWtest/deprecation/test_basic.py32CODE
LOWtest/deprecation/test_basic.py34CODE
LOWtest/deprecation/test_basic.py34CODE
LOWtest/deprecation/test_basic.py35CODE
LOWtest/lib/__init__.py8CODE
LOWsmmap/smmap/__init__.py10CODE
LOWsmmap/smmap/__init__.py11CODE
LOWgitdb/gitdb/fun.py702CODE
LOWgitdb/gitdb/util.py14CODE
LOWgitdb/gitdb/util.py87CODE
LOWgitdb/gitdb/util.py87CODE
LOWgitdb/gitdb/util.py28CODE
LOWgitdb/gitdb/__init__.py14CODE
LOWgitdb/gitdb/__init__.py15CODE
LOWgitdb/gitdb/__init__.py16CODE
LOWgitdb/gitdb/stream.py30CODE
LOWgitdb/gitdb/test/lib.py21CODE
LOWgitdb/gitdb/test/db/lib.py6CODE
LOWgitdb/gitdb/test/db/lib.py6CODE
LOWgitdb/gitdb/test/db/lib.py6CODE
LOWgitdb/gitdb/test/db/test_ref.py11CODE
LOWgitdb/gitdb/db/__init__.py6CODE
LOWgitdb/gitdb/db/__init__.py7CODE
LOWgitdb/gitdb/db/__init__.py8CODE
LOWgitdb/gitdb/db/__init__.py9CODE
LOWgitdb/gitdb/db/__init__.py10CODE
LOWgitdb/gitdb/db/__init__.py11CODE
LOWgit/db.py9CODE
LOWgit/db.py22CODE
LOWgit/cmd.py6CODE
LOWgit/cmd.py71CODE
LOWgit/cmd.py72CODE
LOWgit/config.py45CODE
LOWgit/config.py47CODE
LOWgit/compat.py18CODE
LOWgit/compat.py18CODE
LOWgit/compat.py22CODE
LOWgit/compat.py22CODE
LOWgit/compat.py22CODE
LOWgit/compat.py22CODE
LOWgit/remote.py49CODE
LOWgit/remote.py50CODE
LOWgit/remote.py51CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py54CODE
LOWgit/util.py95CODE
LOWgit/util.py90CODE
LOWgit/util.py91CODE
LOWgit/util.py91CODE
LOWgit/util.py92CODE
LOWgit/util.py93CODE
LOWgit/__init__.py91CODE
LOWgit/__init__.py91CODE
LOWgit/__init__.py91CODE
191 more matches not shown…
Cross-Language Confusion22 hits · 138 pts
SeverityFileLineSnippetContext
HIGHtest/test_docs.py414 origin.push() # Attempt push, ignore errors.CODE
HIGHtest/test_docs.py415 origin.push().raise_if_error() # Push and raise error if it fails.CODE
HIGHtest/test_remote.py352 res = remote.push(lhead.reference, progress)CODE
HIGHtest/test_remote.py359 res = remote.push(lhead.reference)CODE
HIGHtest/test_remote.py365 res = remote.push("+%s" % lhead.reference)CODE
HIGHtest/test_remote.py378 res = remote.push(progress=progress, tags=True)CODE
HIGHtest/test_remote.py386 res = remote.push(tags=True)CODE
HIGHtest/test_remote.py392 res = remote.push("+%s" % new_tag.path)CODE
HIGHtest/test_remote.py397 res = remote.push(":%s" % new_tag.path)CODE
HIGHtest/test_remote.py407 res = remote.push(new_head, progress)CODE
HIGHtest/test_remote.py415 res = remote.push(":%s" % new_head.path, force_with_lease=force_with_lease)CODE
HIGHtest/test_remote.py422 res = remote.push(":%s" % new_head.path)CODE
HIGHtest/test_remote.py428 res = remote.push(all=True)CODE
HIGHtest/test_remote.py436 remote.push(":%s" % other_tag.path, kill_after_timeout=10.0)CODE
HIGHtest/test_remote.py321 remote.push(rw_repo.head.reference)CODE
HIGHtest/test_remote.py711 rem.push("__BAD_REF__")CODE
HIGHtest/test_remote.py962 remote.push(url)CODE
HIGHtest/test_remote.py979 remote.push(url, allow_unsafe_protocols=True)CODE
HIGHtest/test_remote.py998 remote.push(**unsafe_option)CODE
HIGHtest/test_remote.py1025 remote.push(**unsafe_option, allow_unsafe_options=True)CODE
HIGHgit/remote.py122 info = remote.push()[0]STRING
HIGHgit/remote.py1212 proc = self.repo.git.push(CODE
Decorative Section Separators43 hits · 129 pts
SeverityFileLineSnippetContext
MEDIUMtest/test_submodule.py523 # ==================================================COMMENT
MEDIUMtest/test_submodule.py564 # ==============COMMENT
MEDIUMtest/test_submodule.py585 # ====================================COMMENT
MEDIUMtest/test_submodule.py628 # =============COMMENT
MEDIUMtest/test_submodule.py656 # ==============COMMENT
MEDIUMtest/test_submodule.py685 # =================COMMENT
MEDIUMtest/deprecation/test_basic.py37# ------------------------------------------------------------------------COMMENT
MEDIUMdoc/source/conf.py24# ---------------------COMMENT
MEDIUMdoc/source/conf.py94# -----------------------COMMENT
MEDIUMdoc/source/conf.py159# ------------------------COMMENT
MEDIUMgit/db.py24# --------------------------------------------------------COMMENT
MEDIUMgit/cmd.py74# ---------------------------------------------------------------------------------COMMENT
MEDIUMgit/cmd.py95# ==============================================================================COMMENT
MEDIUMgit/cmd.py97# ------------------------------------------------------------------------------COMMENT
MEDIUMgit/config.py62# -------------------------------------------------------------COMMENT
MEDIUMgit/compat.py36# ---------------------------------------------------------------------------COMMENT
MEDIUMgit/remote.py55# -------------------------------------------------------------COMMENT
MEDIUMgit/util.py107# ---------------------------------------------------------------------COMMENT
MEDIUMgit/types.py212# -----------------------------------------------------------------------------------COMMENT
MEDIUMgit/exc.py58# ------------------------------------------------------------------COMMENT
MEDIUMgit/diff.py45# ------------------------------------------------------------------------COMMENT
MEDIUMgit/objects/tree.py52# --------------------------------------------------------COMMENT
MEDIUMgit/objects/fun.py38# ---------------------------------------------------COMMENT
MEDIUMgit/objects/util.py84# --------------------------------------------------------------------COMMENT
MEDIUMgit/objects/commit.py62# ------------------------------------------------------------------------COMMENT
MEDIUMgit/objects/base.py35# --------------------------------------------------------------------------COMMENT
MEDIUMgit/objects/tag.py38# ---------------------------------------------------COMMENT
MEDIUMgit/objects/submodule/root.py24# ----------------------------------------------------------------------------COMMENT
MEDIUMgit/objects/submodule/base.py73# -----------------------------------------------------------------------------COMMENT
MEDIUMgit/objects/submodule/base.py757 # ===============================COMMENT
MEDIUMgit/objects/submodule/base.py761 # ===============================COMMENT
MEDIUMgit/refs/log.py38# ------------------------------------------------------------------------------COMMENT
MEDIUMgit/refs/remote.py24# ------------------------------------------------------------------------------COMMENT
MEDIUMgit/refs/symbolic.py50# ------------------------------------------------------------------------------COMMENT
MEDIUMgit/refs/head.py28# -------------------------------------------------------------------COMMENT
MEDIUMgit/refs/reference.py20# ------------------------------------------------------------------------------COMMENT
MEDIUMgit/refs/tag.py27# ------------------------------------------------------------------------------COMMENT
MEDIUMgit/index/fun.py54# ------------------------------------------------------------------------------------COMMENT
MEDIUMgit/index/util.py25# ---------------------------------------------------------------------------------COMMENT
MEDIUMgit/index/typ.py26# ---------------------------------------------------------------------------------COMMENT
MEDIUMgit/index/base.py85# ------------------------------------------------------------------------------------COMMENT
MEDIUMgit/repo/fun.py51# ----------------------------------------------------------------------------COMMENT
MEDIUMgit/repo/base.py93# -----------------------------------------------------------COMMENT
Deep Nesting74 hits · 71 pts
SeverityFileLineSnippetContext
LOWsetup.py46CODE
LOWfuzzing/fuzz-targets/fuzz_submodule.py23CODE
LOWtest/test_git.py729CODE
LOWtest/test_clone.py357CODE
LOWtest/test_diff.py395CODE
LOWtest/test_index.py614CODE
LOWtest/test_index.py633CODE
LOWtest/lib/helper.py248CODE
LOWtest/lib/helper.py279CODE
LOWtest/lib/helper.py281CODE
LOWtest/performance/test_odb.py13CODE
LOWsmmap/smmap/mman.py303CODE
LOWsmmap/smmap/mman.py491CODE
LOWsmmap/smmap/test/test_mman.py50CODE
LOWsmmap/smmap/test/test_mman.py96CODE
LOWsmmap/smmap/test/test_buf.py25CODE
LOWgitdb/gitdb/pack.py862CODE
LOWgitdb/gitdb/fun.py536CODE
LOWgitdb/gitdb/fun.py248CODE
LOWgitdb/gitdb/test/test_stream.py76CODE
LOWgitdb/gitdb/test/performance/test_pack.py105CODE
LOWgitdb/gitdb/db/git.py44CODE
LOWgit/cmd.py102CODE
LOWgit/cmd.py149CODE
LOWgit/cmd.py735CODE
LOWgit/cmd.py973CODE
LOWgit/cmd.py1036CODE
LOWgit/cmd.py1208CODE
LOWgit/cmd.py1623CODE
LOWgit/cmd.py1446CODE
LOWgit/config.py250CODE
LOWgit/config.py83CODE
LOWgit/config.py381CODE
LOWgit/config.py442CODE
LOWgit/config.py549CODE
LOWgit/config.py613CODE
LOWgit/config.py897CODE
LOWgit/remote.py215CODE
LOWgit/remote.py380CODE
LOWgit/remote.py702CODE
LOWgit/util.py347CODE
LOWgit/util.py419CODE
LOWgit/util.py623CODE
LOWgit/util.py861CODE
LOWgit/diff.py319CODE
LOWgit/diff.py429CODE
LOWgit/diff.py701CODE
LOWgit/objects/tree.py234CODE
LOWgit/objects/util.py111CODE
LOWgit/objects/util.py222CODE
LOWgit/objects/commit.py850CODE
LOWgit/objects/submodule/root.py79CODE
LOWgit/objects/submodule/base.py641CODE
LOWgit/objects/submodule/base.py1109CODE
LOWgit/refs/symbolic.py144CODE
LOWgit/refs/symbolic.py201CODE
LOWgit/refs/symbolic.py449CODE
LOWgit/refs/symbolic.py649CODE
LOWgit/index/fun.py316CODE
LOWgit/index/fun.py389CODE
14 more matches not shown…
Modern Structural Boilerplate55 hits · 54 pts
SeverityFileLineSnippetContext
LOWtest/deprecation/lib.py6__all__ = ["assert_no_deprecation_warning", "suppress_deprecation_warning"]CODE
LOWtest/lib/__init__.py10__all__ = [name for name, obj in locals().items() if not (name.startswith("_") or inspect.ismodule(obj))]CODE
LOWtest/lib/helper.py6__all__ = [CODE
LOWsmmap/smmap/mman.py12__all__ = ["StaticWindowMapManager", "SlidingWindowMapManager", "WindowCursor"]CODE
LOWsmmap/smmap/buf.py4__all__ = ["SlidingWindowMapBuffer"]CODE
LOWsmmap/smmap/util.py8__all__ = ["align_to_mmap", "is_64_bit",CODE
LOWsmmap/smmap/test/lib.py6__all__ = ['TestBase', 'FileCreator']CODE
LOWgitdb/gitdb/exc.py8__all__ = [CODE
LOWgit/db.py6__all__ = ["GitCmdObjectDB", "GitDB"]CODE
LOWgit/cmd.py8__all__ = ["GitMeta", "Git"]CODE
LOWgit/cmd.py1101 def set_persistent_git_options(self, **kwargs: Any) -> None:CODE
LOWgit/config.py8__all__ = ["GitConfigParser", "SectionConstraint"]CODE
LOWgit/remote.py8__all__ = ["RemoteProgress", "PushInfo", "FetchInfo", "Remote"]CODE
LOWgit/remote.py587 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/util.py8__all__ = [CODE
LOWgit/__init__.py8__all__ = [CODE
LOWgit/exc.py8__all__ = [CODE
LOWgit/diff.py6__all__ = ["DiffConstants", "NULL_TREE", "NULL_TREE_SHA", "INDEX", "Diffable", "DiffIndex", "Diff"]CODE
LOWgit/objects/tree.py6__all__ = ["TreeModifier", "Tree"]CODE
LOWgit/objects/tree.py213 def _set_cache_(self, attr: str) -> None:STRING
LOWgit/objects/fun.py6__all__ = [CODE
LOWgit/objects/util.py8__all__ = [CODE
LOWgit/objects/commit.py6__all__ = ["Commit"]CODE
LOWgit/objects/commit.py247 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/objects/__init__.py6__all__ = [CODE
LOWgit/objects/blob.py6__all__ = ["Blob"]CODE
LOWgit/objects/base.py6__all__ = ["Object", "IndexObject"]CODE
LOWgit/objects/base.py154 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/objects/base.py272 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/objects/tag.py12__all__ = ["TagObject"]CODE
LOWgit/objects/tag.py110 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/objects/submodule/util.py4__all__ = [CODE
LOWgit/objects/submodule/util.py89 def set_submodule(self, submodule: "Submodule") -> None:CODE
LOWgit/objects/submodule/__init__.py4__all__ = ["Submodule", "UpdateProgress", "RootModule", "RootUpdateProgress"]CODE
LOWgit/objects/submodule/root.py4__all__ = ["RootModule", "RootUpdateProgress"]CODE
LOWgit/objects/submodule/base.py4__all__ = ["Submodule", "UpdateProgress"]CODE
LOWgit/objects/submodule/base.py169 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/refs/log.py4__all__ = ["RefLog", "RefLogEntry"]CODE
LOWgit/refs/remote.py6__all__ = ["RemoteReference"]CODE
LOWgit/refs/__init__.py4__all__ = [CODE
LOWgit/refs/symbolic.py4__all__ = ["SymbolicReference"]CODE
LOWgit/refs/head.py9__all__ = ["HEAD", "Head"]CODE
LOWgit/refs/reference.py4__all__ = ["Reference"]CODE
LOWgit/refs/tag.py11__all__ = ["TagReference", "Tag"]CODE
LOWgit/index/fun.py7__all__ = [CODE
LOWgit/index/util.py6__all__ = ["TemporaryFileSwap", "post_clear_cache", "default_index", "git_working_dir"]CODE
LOWgit/index/__init__.py6__all__ = [CODE
LOWgit/index/typ.py6__all__ = ["BlobFilter", "BaseIndexEntry", "IndexEntry", "StageType"]CODE
LOWgit/index/base.py9__all__ = ["IndexFile", "CheckoutError", "StageType"]CODE
LOWgit/index/base.py156 def _set_cache_(self, attr: str) -> None:CODE
LOWgit/repo/fun.py8__all__ = [CODE
LOWgit/repo/__init__.py6__all__ = ["Repo"]CODE
LOWgit/repo/base.py8__all__ = ["Repo"]CODE
LOWgit/repo/base.py940 def _set_daemon_export(self, value: object) -> None:STRING
LOWgit/repo/base.py973 def _set_alternates(self, alts: List[str]) -> None:CODE
Over-Commented Block47 hits · 46 pts
SeverityFileLineSnippetContext
LOWfuzzing/fuzz-targets/fuzz_config.py1# Copyright 2023 Google LLCCOMMENT
LOWtest/test_docs.py21 #COMMENT
LOWtest/__init__.py1# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributorsCOMMENT
LOWtest/test_index.py401COMMENT
LOWtest/test_index.py421 rw_repo.index.write()COMMENT
LOWtest/test_quick_doc.py41 # ![1-test_cloned_repo_object]COMMENT
LOWtest/test_quick_doc.py81 # ![6-test_cloned_repo_object]COMMENT
LOWtest/test_quick_doc.py181COMMENT
LOWtest/test_quick_doc.py221 # File 2 version 1COMMENT
LOWtest/performance/__init__.py1# This module is part of GitPython and is released under theCOMMENT
LOWsmmap/doc/source/conf.py1#COMMENT
LOWsmmap/doc/source/conf.py41copyright = '2011, Sebastian Thiel'COMMENT
LOWsmmap/doc/source/conf.py61COMMENT
LOWsmmap/doc/source/conf.py81#show_authors = FalseCOMMENT
LOWsmmap/doc/source/conf.py101# Add any paths that contain custom themes here, relative to this directory.COMMENT
LOWsmmap/doc/source/conf.py121# relative to this directory. They are copied after the builtin static files,COMMENT
LOWsmmap/doc/source/conf.py141#html_use_modindex = TrueCOMMENT
LOWsmmap/doc/source/conf.py181#latex_logo = NoneCOMMENT
LOW.github/workflows/codeql.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql.yml41 # CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlinCOMMENT
LOWdoc/source/conf.py1# GitPython documentation build configuration file, originally created byCOMMENT
LOWdoc/source/conf.py61# non-false value, then it is used:COMMENT
LOWdoc/source/conf.py101# html_title = NoneCOMMENT
LOWdoc/source/conf.py121# html_last_updated_fmt = '%b %d, %Y'COMMENT
LOWdoc/source/conf.py141# html_split_index = FalseCOMMENT
LOWdoc/source/conf.py161# The paper size ('letter' or 'a4').COMMENT
LOWdoc/source/conf.py181# Additional stuff for the LaTeX preamble.COMMENT
LOWgitdb/doc/source/conf.py1#COMMENT
LOWgitdb/doc/source/conf.py41copyright = '2011, Sebastian Thiel'COMMENT
LOWgitdb/doc/source/conf.py61COMMENT
LOWgitdb/doc/source/conf.py101#html_theme_path = []COMMENT
LOWgitdb/doc/source/conf.py121# so a file named "default.css" will overwrite the builtin "default.css".COMMENT
LOWgitdb/doc/source/conf.py141COMMENT
LOWgitdb/doc/source/conf.py181COMMENT
LOWgitdb/gitdb/stream.py161 # is already complete, but there are still some bytes left in the compressedCOMMENT
LOWgitdb/gitdb/stream.py241 self._buflen = 0COMMENT
LOWgitdb/gitdb/stream.py281 # END handle tailCOMMENT
LOWgitdb/gitdb/stream.py321 # Stop when we have enough or there is no path to more output.COMMENT
LOWgitdb/gitdb/stream.py461 # We will use it as scratch space for all delta ops. If the finalCOMMENT
LOWgitdb/gitdb/test/__init__.py1# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributorsCOMMENT
LOWgitdb/gitdb/test/db/__init__.py1# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributorsCOMMENT
LOWgit/util.py681 # Hence we get something like "CompreReceiving objects", which isCOMMENT
LOWgit/__init__.py221 )COMMENT
LOWgit/__init__.py241 # unambiguously non-public and subject to immediate removal. Here, the publicCOMMENT
LOWgit/objects/submodule/root.py301 else:COMMENT
LOWgit/refs/reference.py101 # From refs/files-backend.c in git-source:COMMENT
LOWgit/index/fun.py481 # It was added the same in both.COMMENT
Excessive Try-Catch Wrapping33 hits · 37 pts
SeverityFileLineSnippetContext
LOWfuzzing/fuzz-targets/fuzz_submodule.py114 except Exception as e:CODE
MEDIUMfuzzing/fuzz-targets/utils.py53 print(f"Error reading file {file_path}: {e}")CODE
LOWfuzzing/fuzz-targets/utils.py72 except Exception as e:CODE
MEDIUMfuzzing/fuzz-targets/utils.py73 print(f"Error loading exception list: {e}")CODE
LOWtest/test_index.py319 except Exception as ex:CODE
LOWtest/test_index.py327 except Exception as ex:CODE
LOWtest/lib/helper.py114 except Exception:CODE
LOWtest/lib/helper.py220 except Exception as ex:CODE
LOWtest/lib/helper.py243 except Exception as ex:CODE
LOWtest/lib/helper.py300 except Exception:CODE
LOWsmmap/smmap/mman.py360 except Exception:CODE
LOWsmmap/smmap/mman.py570 except Exception:CODE
LOWgitdb/gitdb/util.py75 except Exception:CODE
LOWgitdb/gitdb/test/lib.py72 except Exception:CODE
LOWgitdb/gitdb/db/ref.py73 except Exception:CODE
LOWgit/cmd.py166 except Exception as ex:STRING
LOWgit/config.py819 except Exception:CODE
LOWgit/config.py851 except Exception:CODE
LOWgit/remote.py979 except Exception as e:CODE
LOWgit/util.py480 except Exception as ex:CODE
LOWgit/util.py538 except Exception:CODE
LOWgit/util.py890 except Exception:CODE
LOWgit/__init__.py297except Exception as _exc:CODE
LOWgit/objects/util.py316 except Exception as e:CODE
LOWgit/objects/submodule/root.py417 except Exception as err:CODE
LOWgit/objects/submodule/base.py961 except Exception as err:CODE
LOWgit/objects/submodule/base.py1094 except Exception:CODE
LOWgit/objects/submodule/base.py1487 except Exception:CODE
LOWgit/objects/submodule/base.py1517 except Exception:CODE
LOWgit/index/fun.py124 except Exception as ex:CODE
LOWgit/repo/base.py347 except Exception:STRING
LOWgit/repo/base.py382 except Exception:STRING
MEDIUMgit/repo/base.py379def __del__(self) -> None:CODE
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALtest/test_refs.py261 res = rw_repo.remotes.origin.refs.master.checkout()CODE
CRITICALtest/test_repo.py517 for item in self.rorepo.head.commit.tree.traverse(CODE
Slop Phrases4 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMsmmap/smmap/test/test_tutorial.py31 # before you can use the cursor, you have to specify a window you want toCOMMENT
MEDIUMsmmap/smmap/test/test_tutorial.py64 # you can use it right awayCOMMENT
MEDIUM.github/workflows/codeql.yml47 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize howCOMMENT
LOWgit/index/base.py1149 don't forget to :meth:`write` your changes to disk beforehand.CODE
AI Slop Vocabulary8 hits · 10 pts
SeverityFileLineSnippetContext
LOWtest/test_remote.py340 # master yet. We simply create it.COMMENT
LOWtest/test_base.py141 # On POSIX, we can just add Unicode files without problems.COMMENT
MEDIUMsmmap/smmap/mman.py97 """Assign rhs to this instance. This is required in order to get a real copy.STRING
LOWsmmap/smmap/test/test_util.py103 assert isinstance(is_64_bit(), bool) # just call itCODE
LOWgitdb/gitdb/fun.py314 # this is very pythonic - we might have just use index based access here,COMMENT
LOWgitdb/gitdb/stream.py462 # target buffer is smaller than our allocated space, we just use partsCOMMENT
LOWgit/diff.py668 # is invalid. We just use the one mode we should have parsed.COMMENT
MEDIUMgit/index/base.py112 """An Index that can be manipulated using a native implementation in order to saveSTRING
Fake / Example Data7 hits · 10 pts
SeverityFileLineSnippetContext
LOWtest/test_git.py423 token = "fake-token-1234"CODE
LOWtest/test_util.py531 "GIT_AUTHOR_NAME": "John Doe",CODE
LOWtest/test_util.py533 "GIT_COMMITTER_NAME": "Jane Doe",CODE
LOWtest/test_util.py540 self.assertEqual(committer.name, "Jane Doe")CODE
LOWtest/test_util.py542 self.assertEqual(author.name, "John Doe")CODE
LOWtest/test_util.py674 authorization = "Bearer fake-token-1234"CODE
LOWgit/remote.py993 unset = "placeholder"CODE
Redundant / Tautological Comments6 hits · 8 pts
SeverityFileLineSnippetContext
LOWtox.ini17 CLICOLOR_FORCE = 1 # Set NO_COLOR to override this.CODE
LOWtox.ini25 CLICOLOR_FORCE = 1 # Set NO_COLOR to override this.CODE
LOWtest/test_docs.py243 new_branch.commit = "HEAD~10" # Set branch to another commit without changing index or working trees.CODE
LOWtest/test_index.py453 # Write the file back.COMMENT
LOWtest/performance/test_streams.py104 # Write file - pump everything in at once to be a fast as possible.COMMENT
LOWgit/config.py525 # Check if it's an option with no value - it's just ignored by git.COMMENT
AI Structural Patterns7 hits · 7 pts
SeverityFileLineSnippetContext
LOWgit/cmd.py1208CODE
LOWgit/diff.py105CODE
LOWgit/objects/commit.py115CODE
LOWgit/objects/submodule/root.py79CODE
LOWgit/objects/submodule/base.py442CODE
LOWgit/objects/submodule/base.py641CODE
LOWgit/index/base.py1129CODE