MCPcopy
hub / github.com/helm/helm / ExtractTgzPluginMetadata

Function ExtractTgzPluginMetadata

internal/plugin/sign.go:56–91  ·  view source on GitHub ↗

ExtractTgzPluginMetadata extracts plugin metadata from a gzipped tarball reader

(r io.Reader)

Source from the content-addressed store, hash-verified

54
55// ExtractTgzPluginMetadata extracts plugin metadata from a gzipped tarball reader
56func ExtractTgzPluginMetadata(r io.Reader) (*Metadata, error) {
57 gzr, err := gzip.NewReader(r)
58 if err != nil {
59 return nil, err
60 }
61 defer gzr.Close()
62
63 tr := tar.NewReader(gzr)
64 for {
65 header, err := tr.Next()
66 if errors.Is(err, io.EOF) {
67 break
68 }
69 if err != nil {
70 return nil, err
71 }
72
73 // Look for plugin.yaml file
74 if filepath.Base(header.Name) == "plugin.yaml" {
75 data, err := io.ReadAll(tr)
76 if err != nil {
77 return nil, err
78 }
79
80 // Parse the plugin metadata
81 metadata, err := loadMetadata(data)
82 if err != nil {
83 return nil, err
84 }
85
86 return metadata, nil
87 }
88 }
89
90 return nil, errors.New("plugin.yaml not found in tarball")
91}
92
93// parsePluginMessageBlock parses a signed message block to extract plugin metadata and checksums
94func parsePluginMessageBlock(data []byte) (*Metadata, *provenance.SumCollection, error) {

Callers 5

InstallMethod · 0.92
GetVerificationDataMethod · 0.92
installFromArchiveMethod · 0.92
InstallMethod · 0.92
SignPluginFunction · 0.85

Calls 3

loadMetadataFunction · 0.85
CloseMethod · 0.80
IsMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…