GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||
GeezerVison is showing github.com — fix: validate object types when loading binary SHAs by Byron · Pull Request #2256 · gitpython-developers/GitPython Conversation
|
| File | Summary |
|---|---|
test/test_index.py |
Tests binary SHA and type handling. |
test/test_diff.py |
Tests submodule diff behavior. |
test/test_commit.py |
Updates commit stream tests. |
test/test_base.py |
Tests object validation. |
git/objects/util.py |
Implements shared type checking. |
git/objects/tree.py |
Validates tree loading. |
git/objects/tag.py |
Validates tag loading. |
git/objects/fun.py |
Validates tree traversal. |
git/objects/commit.py |
Validates commit loading. |
git/objects/base.py |
Adds lazy object validation. |
git/index/base.py |
Supports binary SHA inputs. |
git/diff.py |
Handles submodule commits as index objects. |
.basedpyright/baseline.json |
Removes an obsolete diagnostic. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
0610404 to
7ed5433
Compare
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Unresolved object-type, raw tree traversal, and submodule repository-selection issues block approval.
Review effort: Lite
Findings: 1
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
<!-- agent --> An object constructed with a SHA for another Git object type could silently expose that object's size. Check the type metadata already returned by `odb.info()` when loading an uncached `Object.size`, and raise `ValueError` naming the SHA, actual type, and expected type. Limit validation to this metadata lookup. Rejecting an unread stream can leave payload bytes in the persistent `git cat-file --batch` response while an exception retains its traceback, corrupting subsequent reads. Stream consumers keep their existing behavior, with no type assertions or added draining. Constructors remain lazy, and object-data parsing still relies on callers to supply a SHA of the appropriate type. Preserve binary SHAs in `IndexFile.new()` instead of converting them to their Python string representation. Accept binary and hexadecimal bytes alongside hex strings and `Tree` objects. Represent submodule diff entries with `IndexObject`, retaining their path, mode, and access to the submodule's commit data without labeling those commits as blobs. Extend existing object, index, and submodule diff tests to cover binary SHA inputs, metadata mismatches, and raw streaming through wrappers of another object type. Remove the obsolete `IndexFile.new()` assignment diagnostic from the `basedpyright` baseline. Validation: 67 affected tests and Ruff lint/format checks passed. Subsequent reads were also verified with active parser exceptions using both `GitCmdObjectDB` and `GitDB`. Assisted-by: GPT 6.0 Co-authored-by: GPT 6.0 <[email protected]>
7ed5433 to
6bf77c0
Compare
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Three moderate unresolved issues remain in object validation, tree traversal, and added gitlink handling.
Review effort: Lite
Findings: 2
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Exception suggestion: raise when making a Commit with non-commit binsha
There was an error while loading. Please reload this page.