github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/api/plugin/plugin_repository.go (about) 1 package plugin 2 3 import "net/url" 4 5 // PluginRepository represents a plugin repository 6 type PluginRepository struct { 7 Plugins []Plugin `json:"plugins"` 8 } 9 10 type PluginBinary struct { 11 Platform string `json:"platform"` 12 URL string `json:"url"` 13 Checksum string `json:"checksum"` 14 } 15 16 type Plugin struct { 17 Name string `json:"name"` 18 Description string `json:"description"` 19 Version string `json:"version"` 20 Binaries []PluginBinary `json:"binaries"` 21 } 22 23 func (client *Client) GetPluginRepository(repositoryURL string) (PluginRepository, error) { 24 parsedURL, err := url.Parse(repositoryURL) 25 if err != nil { 26 return PluginRepository{}, err 27 } 28 parsedURL.Path = "/list" 29 30 request, err := client.newGETRequest(parsedURL.String()) 31 if err != nil { 32 return PluginRepository{}, err 33 } 34 35 var pluginRepository PluginRepository 36 response := Response{ 37 Result: &pluginRepository, 38 } 39 err = client.connection.Make(request, &response, nil) 40 if err != nil { 41 return PluginRepository{}, err 42 } 43 44 return pluginRepository, nil 45 }