@@ -37,7 +37,8 @@ export function defaultValues(
3737 advisorPlugins : PreconfiguredPluginDescriptor [ ] ,
3838 scannerPlugins : PreconfiguredPluginDescriptor [ ] ,
3939 isSuperuser : boolean ,
40- packageCurationProviderPlugins : PreconfiguredPluginDescriptor [ ]
40+ packageCurationProviderPlugins : PreconfiguredPluginDescriptor [ ] ,
41+ packageConfigurationProviderPlugins : PreconfiguredPluginDescriptor [ ]
4142) : CreateRunFormValues {
4243 /**
4344 * Constructs the default options for a package manager, either as a blank set of options
@@ -93,6 +94,16 @@ export function defaultValues(
9394 const packageCurationProviderFormValues = providerPluginConfigsToFormValues (
9495 ortRun ?. jobConfigs . analyzer ?. packageCurationProviders
9596 ) ;
97+ const packageConfigurationProviderPluginDefaultValues =
98+ getPluginDefaultValues ( packageConfigurationProviderPlugins ) ;
99+ const evaluatorPackageConfigurationProviderFormValues =
100+ providerPluginConfigsToFormValues (
101+ ortRun ?. jobConfigs . evaluator ?. packageConfigurationProviders
102+ ) ;
103+ const reporterPackageConfigurationProviderFormValues =
104+ providerPluginConfigsToFormValues (
105+ ortRun ?. jobConfigs . reporter ?. packageConfigurationProviders
106+ ) ;
96107 const scannerDefaults = {
97108 scanners : [ 'ScanCode' ] ,
98109 scannerScopes : {
@@ -170,12 +181,18 @@ export function defaultValues(
170181 copyrightGarbageFile : '' ,
171182 resolutionsFile : '' ,
172183 keepAliveWorker : false ,
184+ packageConfigurationProviders : [ ] ,
185+ packageConfigurationProviderConfig :
186+ packageConfigurationProviderPluginDefaultValues ,
173187 } ,
174188 reporter : {
175189 enabled : true ,
176190 formats : [ 'CycloneDX' , 'SpdxDocument' , 'WebApp' ] ,
177191 deduplicateDependencyTree : false ,
178192 keepAliveWorker : false ,
193+ packageConfigurationProviders : [ ] ,
194+ packageConfigurationProviderConfig :
195+ packageConfigurationProviderPluginDefaultValues ,
179196 } ,
180197 notifier : {
181198 enabled : false ,
@@ -289,6 +306,12 @@ export function defaultValues(
289306 enabled :
290307 ortRun . jobConfigs . evaluator !== undefined &&
291308 ortRun . jobConfigs . evaluator !== null ,
309+ packageConfigurationProviders :
310+ evaluatorPackageConfigurationProviderFormValues . selectedPluginIds ,
311+ packageConfigurationProviderConfig : mergePluginConfigs (
312+ evaluatorPackageConfigurationProviderFormValues . config ,
313+ packageConfigurationProviderPluginDefaultValues
314+ ) ,
292315 keepAliveWorker :
293316 ( ortRun . jobConfigs . evaluator ?. keepAliveWorker && isSuperuser ) ||
294317 baseDefaults . jobConfigs . evaluator . keepAliveWorker ,
@@ -303,6 +326,12 @@ export function defaultValues(
303326 ) || baseDefaults . jobConfigs . reporter . formats ,
304327 deduplicateDependencyTree :
305328 deduplicateDependencyTreeEnabled || undefined ,
329+ packageConfigurationProviders :
330+ reporterPackageConfigurationProviderFormValues . selectedPluginIds ,
331+ packageConfigurationProviderConfig : mergePluginConfigs (
332+ reporterPackageConfigurationProviderFormValues . config ,
333+ packageConfigurationProviderPluginDefaultValues
334+ ) ,
306335 keepAliveWorker :
307336 ( ortRun . jobConfigs . reporter ?. keepAliveWorker && isSuperuser ) ||
308337 baseDefaults . jobConfigs . reporter . keepAliveWorker ,
@@ -362,34 +391,41 @@ if (import.meta.vitest) {
362391 labels : { } ,
363392 } as unknown as OrtRun ;
364393
365- const defaults = defaultValues ( ortRun , [ ] , [ ] , false , [ ] ) ;
394+ const defaults = defaultValues ( ortRun , [ ] , [ ] , false , [ ] , [ ] ) ;
366395
367396 expect ( defaults . jobConfigs . analyzer . environmentDefinitions ) . toEqual (
368397 ortRun . jobConfigs . analyzer ?. environmentConfig ?. environmentDefinitions
369398 ) ;
370399 } ) ;
371400
372401 it ( 'uses package curation provider plugin default values for fresh runs' , ( ) => {
373- const defaults = defaultValues ( null , [ ] , [ ] , false , [
374- {
375- id : 'ClearlyDefined' ,
376- type : 'PACKAGE_CURATION_PROVIDER' ,
377- displayName : 'ClearlyDefined' ,
378- summary : 'A package curation provider plugin' ,
379- description : 'A package curation provider plugin.' ,
380- options : [
381- {
382- name : 'serverUrl' ,
383- description : 'Backend URL.' ,
384- type : 'STRING' ,
385- defaultValue : 'https://api.clearlydefined.io' ,
386- isFixed : true ,
387- isNullable : false ,
388- isRequired : true ,
389- } ,
390- ] ,
391- } ,
392- ] ) ;
402+ const defaults = defaultValues (
403+ null ,
404+ [ ] ,
405+ [ ] ,
406+ false ,
407+ [
408+ {
409+ id : 'ClearlyDefined' ,
410+ type : 'PACKAGE_CURATION_PROVIDER' ,
411+ displayName : 'ClearlyDefined' ,
412+ summary : 'A package curation provider plugin' ,
413+ description : 'A package curation provider plugin.' ,
414+ options : [
415+ {
416+ name : 'serverUrl' ,
417+ description : 'Backend URL.' ,
418+ type : 'STRING' ,
419+ defaultValue : 'https://api.clearlydefined.io' ,
420+ isFixed : true ,
421+ isNullable : false ,
422+ isRequired : true ,
423+ } ,
424+ ] ,
425+ } ,
426+ ] ,
427+ [ ]
428+ ) ;
393429
394430 expect ( defaults . jobConfigs . analyzer . packageCurationProviders ) . toEqual ( [ ] ) ;
395431 expect ( defaults . jobConfigs . analyzer . packageCurationProviderConfig ) . toEqual ( {
@@ -426,7 +462,7 @@ if (import.meta.vitest) {
426462 labels : { } ,
427463 } as unknown as OrtRun ;
428464
429- const defaults = defaultValues ( ortRun , [ ] , [ ] , false , [ ] ) ;
465+ const defaults = defaultValues ( ortRun , [ ] , [ ] , false , [ ] , [ ] ) ;
430466
431467 expect ( defaults . jobConfigs . analyzer . packageCurationProviders ) . toEqual ( [
432468 'ClearlyDefined' ,
@@ -443,6 +479,136 @@ if (import.meta.vitest) {
443479 } ) ;
444480 } ) ;
445481
482+ it ( 'uses package configuration provider plugin default values for fresh runs' , ( ) => {
483+ const defaults = defaultValues (
484+ null ,
485+ [ ] ,
486+ [ ] ,
487+ false ,
488+ [ ] ,
489+ [
490+ {
491+ id : 'OrtConfig' ,
492+ type : 'PACKAGE_CONFIGURATION_PROVIDER' ,
493+ displayName : 'ORT Config' ,
494+ summary : 'A package configuration provider plugin' ,
495+ description : 'A package configuration provider plugin.' ,
496+ options : [
497+ {
498+ name : 'path' ,
499+ description : 'Provider path.' ,
500+ type : 'STRING' ,
501+ defaultValue : 'package-configurations.yml' ,
502+ isFixed : true ,
503+ isNullable : false ,
504+ isRequired : true ,
505+ } ,
506+ ] ,
507+ } ,
508+ ]
509+ ) ;
510+
511+ expect ( defaults . jobConfigs . evaluator . packageConfigurationProviders ) . toEqual (
512+ [ ]
513+ ) ;
514+ expect (
515+ defaults . jobConfigs . evaluator . packageConfigurationProviderConfig
516+ ) . toEqual ( {
517+ OrtConfig : {
518+ options : {
519+ path : 'package-configurations.yml' ,
520+ } ,
521+ secrets : { } ,
522+ } ,
523+ } ) ;
524+ expect ( defaults . jobConfigs . reporter . packageConfigurationProviders ) . toEqual (
525+ [ ]
526+ ) ;
527+ expect (
528+ defaults . jobConfigs . reporter . packageConfigurationProviderConfig
529+ ) . toEqual ( {
530+ OrtConfig : {
531+ options : {
532+ path : 'package-configurations.yml' ,
533+ } ,
534+ secrets : { } ,
535+ } ,
536+ } ) ;
537+ } ) ;
538+
539+ it ( 'preserves package configuration provider config from reruns' , ( ) => {
540+ const ortRun = {
541+ revision : 'main' ,
542+ path : '' ,
543+ jobConfigs : {
544+ evaluator : {
545+ packageConfigurationProviders : [
546+ {
547+ type : 'OrtConfig' ,
548+ id : 'OrtConfig' ,
549+ enabled : true ,
550+ options : {
551+ path : 'evaluator-package-configurations.yml' ,
552+ } ,
553+ secrets : {
554+ token : 'evaluator-token' ,
555+ } ,
556+ } ,
557+ ] ,
558+ } ,
559+ reporter : {
560+ packageConfigurationProviders : [
561+ {
562+ type : 'OrtConfig' ,
563+ id : 'OrtConfig' ,
564+ enabled : true ,
565+ options : {
566+ path : 'reporter-package-configurations.yml' ,
567+ } ,
568+ secrets : {
569+ token : 'reporter-token' ,
570+ } ,
571+ } ,
572+ ] ,
573+ } ,
574+ } ,
575+ labels : { } ,
576+ } as unknown as OrtRun ;
577+
578+ const defaults = defaultValues ( ortRun , [ ] , [ ] , false , [ ] , [ ] ) ;
579+
580+ expect ( defaults . jobConfigs . evaluator . packageConfigurationProviders ) . toEqual (
581+ [ 'OrtConfig' ]
582+ ) ;
583+ expect (
584+ defaults . jobConfigs . evaluator . packageConfigurationProviderConfig
585+ ) . toEqual ( {
586+ OrtConfig : {
587+ options : {
588+ path : 'evaluator-package-configurations.yml' ,
589+ } ,
590+ secrets : {
591+ token : 'evaluator-token' ,
592+ } ,
593+ } ,
594+ } ) ;
595+ expect ( defaults . jobConfigs . reporter . packageConfigurationProviders ) . toEqual ( [
596+ 'OrtConfig' ,
597+ ] ) ;
598+ expect (
599+ defaults . jobConfigs . reporter . packageConfigurationProviderConfig
600+ ) . toEqual ( {
601+ OrtConfig : {
602+ options : {
603+ path : 'reporter-package-configurations.yml' ,
604+ } ,
605+ secrets : {
606+ token : 'reporter-token' ,
607+ } ,
608+ } ,
609+ } ) ;
610+ } ) ;
611+
446612 it ( 'uses scanner plugin default values for fresh runs' , ( ) => {
447613 const defaults = defaultValues (
448614 null ,
@@ -468,6 +634,7 @@ if (import.meta.vitest) {
468634 } ,
469635 ] ,
470636 false ,
637+ [ ] ,
471638 [ ]
472639 ) ;
473640
0 commit comments