@@ -26,6 +26,7 @@ import (
26
26
"path"
27
27
"path/filepath"
28
28
"strings"
29
+ "sync"
29
30
"time"
30
31
31
32
"github.com/blang/semver/v4"
59
60
cacheFiles = map [string ][]byte {}
60
61
retryableOperationInterval = 10 * time .Second
61
62
retryableOperationTimeout = 1 * time .Minute
63
+
64
+ // dumpedMetadata tracks which metadata files have already been dumped to avoid duplicates
65
+ dumpedMetadata = sync.Map {}
62
66
)
63
67
64
68
// gitHubRepository provides support for providers hosted on GitHub.
@@ -494,6 +498,31 @@ func (g *gitHubRepository) downloadFilesFromRelease(ctx context.Context, release
494
498
return nil , retryError
495
499
}
496
500
501
+ // If this is a metadata.yaml file and verbose logging is enabled (-v=10), dump the content to logs
502
+ if filepath .Base (fileName ) == "metadata.yaml" {
503
+ log := logf .Log
504
+ // Check if verbose logging is enabled by creating a V(10) logger and checking if it's enabled
505
+ verboseLog := log .V (10 )
506
+ if verboseLog .Enabled () {
507
+ log .Info ("Dumping metadata.yaml via downloadFilesFromRelease" , "provider" , g .providerConfig .Name (), "fileName" , fileName )
508
+
509
+ // Create a unique key for this provider/version combination
510
+ version := ""
511
+ if release .TagName != nil {
512
+ version = * release .TagName
513
+ }
514
+ dumpKey := fmt .Sprintf ("%s/%s/%s" , g .providerConfig .Name (), g .providerConfig .Type (), version )
515
+
516
+ // Only dump if we haven't already dumped this metadata file
517
+ if _ , alreadyDumped := dumpedMetadata .LoadOrStore (dumpKey , true ); ! alreadyDumped {
518
+ providerID := fmt .Sprintf ("%s/%s" , g .providerConfig .Name (), version )
519
+ verboseLog .Info ("metadata.yaml content" ,
520
+ "providerID" , providerID ,
521
+ "content" , string (content ))
522
+ }
523
+ }
524
+ }
525
+
497
526
return content , nil
498
527
}
499
528
0 commit comments