(target: dict[str, Any])
| 467 | |
| 468 | |
| 469 | def _validate_target(target: dict[str, Any]) -> None: |
| 470 | kind = _require_str(target, "kind", "scan.target") |
| 471 | if kind not in TARGET_KINDS: |
| 472 | raise ContractError(f"scan.target.kind: unsupported target kind: {kind}") |
| 473 | _require_str(target, "targetId", "scan.target") |
| 474 | _require_str(target, "displayName", "scan.target") |
| 475 | remote = target.get("remote") |
| 476 | if remote is not None: |
| 477 | if not isinstance(remote, str): |
| 478 | raise ContractError("scan.target.remote: expected a string") |
| 479 | _validate_remote(remote, "scan.target.remote") |
| 480 | if kind == "git_revision": |
| 481 | _require_str(target, "revision", "scan.target") |
| 482 | elif kind == "git_worktree": |
| 483 | _require_str(target, "snapshotDigest", "scan.target") |
| 484 | elif kind == "git_diff": |
| 485 | _require_str(target, "snapshotDigest", "scan.target") |
| 486 | elif kind == "directory_snapshot": |
| 487 | _require_str(target, "snapshotDigest", "scan.target") |
| 488 | |
| 489 | |
| 490 | def _fingerprint(target_id: str, finding: dict[str, Any]) -> str: |
no test coverage detected