@@ -74,9 +74,13 @@ type rule = {
74
74
?match_ <json name="match">: formula option;
75
75
?taint: taint option;
76
76
?extract: extract option;
77
- (* TODO: steps, secrets, sca *)
77
+ (* TODO: steps, secrets *)
78
78
(* TODO? product: product; *)
79
79
80
+ (* can work with match/taint/..., maybe not extract *)
81
+ ?project_depends_on <json name="r2c-internal-project-depends-on">:
82
+ project_depends_on option;
83
+
80
84
(* alt: later: could be replaced by a pattern-filename: *)
81
85
?paths: paths option;
82
86
@@ -400,9 +404,43 @@ type propagator = {
400
404
<json adapter.ocaml="Rule_schema_v2_adapter.Formula">
401
405
402
406
(*****************************************************************************)
403
- (* TODO: SSC *)
407
+ (* Supply chain *)
404
408
(*****************************************************************************)
405
409
410
+ (* need an adapter there too *)
411
+ type project_depends_on = [
412
+ | DependsBasic <json name="B"> of project_depends_on_basic
413
+ | DependsEither <json name="E"> of project_depends_on_either
414
+ ]
415
+ <json adapter.ocaml="Rule_schema_v2_adapter.ProjectDependsOn">
416
+
417
+ type project_depends_on_basic = {
418
+ namespace: namespace;
419
+ package: string;
420
+ version: semver_range;
421
+ }
422
+
423
+ type project_depends_on_either = {
424
+ depends_on_either <json name="depends-on-either">:
425
+ project_depends_on_basic list;
426
+ }
427
+
428
+ (* coupling: semgrep_output_v1.ecosystem (better name than namespace) *)
429
+ type namespace = [
430
+ | Npm <json name="npm">
431
+ | Pypi <json name="pypi">
432
+ | Gem <json name="gem">
433
+ | Gomod <json name="gomod">
434
+ | Cargo <json name="cargo">
435
+ | Maven <json name="maven">
436
+ | Composer <json name="composer">
437
+ | Nuget <json name="nuget">
438
+ | Pub <json name="pub">
439
+ ]
440
+
441
+ (* ex: < 0.0.8 *)
442
+ type semver_range = string
443
+
406
444
(*****************************************************************************)
407
445
(* TODO: Extract mode *)
408
446
(*****************************************************************************)
0 commit comments