|
32 | 32 | MarkdownFormat,
|
33 | 33 | VulnerabilityFormat,
|
34 | 34 | )
|
35 |
| -from pip_audit._service import OsvService, PyPIService, VulnerabilityService |
| 35 | +from pip_audit._service import OsvService, PyPIService |
36 | 36 | from pip_audit._service.interface import ConnectionError as VulnServiceConnectionError
|
37 |
| -from pip_audit._service.interface import ResolvedDependency, SkippedDependency |
| 37 | +from pip_audit._service.interface import ResolvedDependency, SkippedDependency, VulnerabilityService |
38 | 38 | from pip_audit._state import AuditSpinner, AuditState
|
39 | 39 | from pip_audit._util import assert_never
|
40 | 40 |
|
@@ -100,14 +100,6 @@ class VulnerabilityServiceChoice(str, enum.Enum):
|
100 | 100 | Osv = "osv"
|
101 | 101 | Pypi = "pypi"
|
102 | 102 |
|
103 |
| - def to_service(self, timeout: int, cache_dir: Path | None) -> VulnerabilityService: |
104 |
| - if self is VulnerabilityServiceChoice.Osv: |
105 |
| - return OsvService(cache_dir, timeout) |
106 |
| - elif self is VulnerabilityServiceChoice.Pypi: |
107 |
| - return PyPIService(cache_dir, timeout) |
108 |
| - else: |
109 |
| - assert_never(self) # pragma: no cover |
110 |
| - |
111 | 103 | def __str__(self) -> str:
|
112 | 104 | return self.value
|
113 | 105 |
|
@@ -249,6 +241,14 @@ def _parser() -> argparse.ArgumentParser: # pragma: no cover
|
249 | 241 | VulnerabilityServiceChoice,
|
250 | 242 | ),
|
251 | 243 | )
|
| 244 | + parser.add_argument( |
| 245 | + "--osv-url", |
| 246 | + type=str, |
| 247 | + metavar="OSV_URL", |
| 248 | + dest="osv_url", |
| 249 | + default=os.environ.get("PIP_AUDIT_OSV_URL", OsvService.DEFAULT_OSV_URL), |
| 250 | + help="URL to use for the OSV API instead of the default", |
| 251 | + ) |
252 | 252 | parser.add_argument(
|
253 | 253 | "-d",
|
254 | 254 | "--dry-run",
|
@@ -438,7 +438,14 @@ def audit() -> None: # pragma: no cover
|
438 | 438 | parser = _parser()
|
439 | 439 | args = _parse_args(parser)
|
440 | 440 |
|
441 |
| - service = args.vulnerability_service.to_service(args.timeout, args.cache_dir) |
| 441 | + service: VulnerabilityService |
| 442 | + if args.vulnerability_service is VulnerabilityServiceChoice.Osv: |
| 443 | + service = OsvService(cache_dir=args.cache_dir, timeout=args.timeout, osv_url=args.osv_url) |
| 444 | + elif args.vulnerability_service is VulnerabilityServiceChoice.Pypi: |
| 445 | + service = PyPIService(cache_dir=args.cache_dir, timeout=args.timeout) |
| 446 | + else: |
| 447 | + assert_never(args.vulnerability_service) # pragma: no cover |
| 448 | + |
442 | 449 | output_desc = args.desc.to_bool(args.format)
|
443 | 450 | output_aliases = args.aliases.to_bool(args.format)
|
444 | 451 | formatter = args.format.to_format(output_desc, output_aliases)
|
|
0 commit comments