Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Security

- Require GitPython 3.2.0 or newer in the `mlflow`, `all-ci`, and `all` extras and lockfile to fix `Remote.pull()` refspec option injection ([GHSA-f9j4-qggq-h239](https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-f9j4-qggq-h239)).
- Require AnyIO 4.14.2 or newer in published package dependencies as well as the lockfile.

### Changed

- Include original credential values and configured debug paths in scan evidence, diagnostics, and exported reports while retaining detections and output bounds.
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ dependencies = [
"defusedxml>=0.7.1",
"huggingface-hub>=0.23.0",
"requests>=2.28.0",
"anyio>=4.14.2",
"python-dotenv>=1.0.0",
"platformdirs>=3.0.0",
"pyyaml>=6.0,<7.0",
Expand Down Expand Up @@ -83,6 +84,7 @@ xgboost = [
]
mlflow = [
"mlflow-skinny>=3.13.0",
"gitpython>=3.2.0",
"sqlalchemy>=2.0.49",
"alembic>=1.18.4",
"sqlparse>=0.6.0",
Expand Down Expand Up @@ -128,6 +130,7 @@ all-ci = [
"py-ubjson>=0.16.0",
"py7zr>=1.1.3",
"mlflow-skinny>=3.13.0",
"gitpython>=3.2.0",
"sqlalchemy>=2.0.49",
"alembic>=1.18.4",
"sqlparse>=0.6.0",
Expand Down Expand Up @@ -159,6 +162,7 @@ all = [
"py-ubjson>=0.16.0",
"py7zr>=1.1.3",
"mlflow-skinny>=3.13.0",
"gitpython>=3.2.0",
"sqlalchemy>=2.0.49",
"alembic>=1.18.4",
"sqlparse>=0.6.0",
Expand Down
11 changes: 10 additions & 1 deletion tests/test_dependency_lock.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
ROOT_PYPROJECT = ROOT_DIR / "pyproject.toml"
RENOVATE_CONFIG = ROOT_DIR / "renovate.json"
PICKLESCAN_PYPROJECT = ROOT_DIR / "packages" / "modelaudit-picklescan" / "pyproject.toml"
PATCHED_GITPYTHON_FLOOR = (3, 1, 60)
PATCHED_GITPYTHON_FLOOR = (3, 2, 0)
PATCHED_ANYIO_FLOOR = (4, 14, 2)
PATCHED_GITPYTHON_REQUIREMENT = "gitpython>=3.2.0"
PATCHED_ANYIO_REQUIREMENT = "anyio>=4.14.2"
PINNED_MATURIN_BACKEND = "maturin===1.13.3"
PATCHED_PY7ZR_REQUIREMENT = "py7zr>=1.1.3"
PY7ZR_EXTRAS = ("sevenzip", "all-ci", "all")
Expand Down Expand Up @@ -109,6 +111,13 @@ def test_mlflow_extras_use_the_hardened_tracking_client() -> None:

for extra in MLFLOW_EXTRAS:
assert PATCHED_MLFLOW_CLIENT_REQUIREMENT in optional_dependencies[extra]
assert PATCHED_GITPYTHON_REQUIREMENT in optional_dependencies[extra]


def test_base_install_requires_patched_anyio() -> None:
root_config = tomllib.loads(ROOT_PYPROJECT.read_text(encoding="utf-8"))

assert PATCHED_ANYIO_REQUIREMENT in root_config["project"]["dependencies"]


@pytest.mark.parametrize("extra", MLFLOW_EXTRAS)
Expand Down
14 changes: 11 additions & 3 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading