diff --git a/src/poetry/utils/dependency_specification.py b/src/poetry/utils/dependency_specification.py index 27f3a0da5e8..554994f7506 100644 --- a/src/poetry/utils/dependency_specification.py +++ b/src/poetry/utils/dependency_specification.py @@ -29,6 +29,8 @@ DependencySpec = Dict[str, Union[str, bool, Dict[str, Union[str, bool]], List[str]]] BaseSpec = TypeVar("BaseSpec", DependencySpec, InlineTable) +GIT_URL_SCHEMES = {"git+http", "git+https", "git+ssh"} + def dependency_to_specification( dependency: Dependency, specification: BaseSpec @@ -143,7 +145,7 @@ def _parse_url(self, requirement: str) -> DependencySpec | None: if not (url_parsed.scheme and url_parsed.netloc): return None - if url_parsed.scheme in ["git+https", "git+ssh"]: + if url_parsed.scheme in GIT_URL_SCHEMES: return self._parse_git_url(requirement) if url_parsed.scheme in ["http", "https"]: diff --git a/tests/utils/test_dependency_specification.py b/tests/utils/test_dependency_specification.py index ce5c2badfe5..0246c85310a 100644 --- a/tests/utils/test_dependency_specification.py +++ b/tests/utils/test_dependency_specification.py @@ -22,6 +22,10 @@ @pytest.mark.parametrize( ("requirement", "expected_variants"), [ + ( + "git+http://github.com/demo/demo.git", + ({"git": "http://github.com/demo/demo.git", "name": "demo"},), + ), ( "git+https://github.com/demo/demo.git", ({"git": "https://github.com/demo/demo.git", "name": "demo"},),