MCPcopy Index your code
hub / github.com/devspace-sh/devspace / DownloadMetadata

Method DownloadMetadata

pkg/devspace/plugin/installer.go:84–150  ·  view source on GitHub ↗
(path, version string)

Source from the content-addressed store, hash-verified

82}
83
84func (i *installer) DownloadMetadata(path, version string) (*Metadata, error) {
85 if isLocalReference(path) {
86 out, err := os.ReadFile(path)
87 if err != nil {
88 return nil, err
89 }
90
91 metadata := &Metadata{}
92 err = yaml.Unmarshal(out, metadata)
93 if err != nil {
94 return nil, err
95 }
96
97 return metadata, nil
98 } else if isRemoteHTTPYAML(path) {
99 resp, err := http.Get(path)
100 if err != nil {
101 return nil, err
102 }
103
104 out, err := io.ReadAll(resp.Body)
105 if err != nil {
106 return nil, err
107 }
108
109 metadata := &Metadata{}
110 err = yaml.Unmarshal(out, metadata)
111 if err != nil {
112 return nil, err
113 }
114
115 return metadata, nil
116 }
117
118 tempDir, err := os.MkdirTemp("", "")
119 if err != nil {
120 return nil, err
121 }
122
123 defer os.RemoveAll(tempDir)
124 repo, err := git.NewGitCLIRepository(context.Background(), tempDir)
125 if err != nil {
126 return nil, err
127 }
128
129 err = repo.Clone(context.Background(), git.CloneOptions{
130 URL: path,
131 Tag: version,
132 })
133 if err != nil {
134 return nil, err
135 }
136 _ = repo.Pull(context.Background())
137
138 out, err := os.ReadFile(filepath.Join(tempDir, pluginYaml))
139 if err != nil {
140 return nil, err
141 }

Callers

nothing calls this directly

Calls 6

CloneMethod · 0.95
PullMethod · 0.95
NewGitCLIRepositoryFunction · 0.92
isLocalReferenceFunction · 0.85
isRemoteHTTPYAMLFunction · 0.85
GetMethod · 0.45

Tested by

no test coverage detected