|
1 | 1 | package registry
|
2 | 2 |
|
3 | 3 | import (
|
4 |
| - "errors" |
5 | 4 | "fmt"
|
6 |
| - "runtime" |
7 |
| - "sort" |
8 | 5 |
|
9 |
| - "github.com/Masterminds/semver/v3" |
| 6 | + "github.com/go-semantic-release/plugin-registry/pkg/client" |
10 | 7 | "github.com/go-semantic-release/semantic-release/v2/pkg/plugin"
|
11 | 8 | "github.com/go-semantic-release/semantic-release/v2/pkg/plugin/discovery/resolver"
|
12 | 9 | )
|
13 | 10 |
|
14 |
| -type Resolver struct{} |
| 11 | +const DefaultEndpoint = "https://registry-staging.go-semantic-release.xyz/api/v2" |
15 | 12 |
|
16 |
| -func NewResolver() *Resolver { |
17 |
| - return &Resolver{} |
| 13 | +type Resolver struct { |
| 14 | + client *client.Client |
18 | 15 | }
|
19 | 16 |
|
20 |
| -func (r *Resolver) ResolvePlugin(pluginInfo *plugin.Info) (*resolver.PluginDownloadInfo, error) { |
21 |
| - pluginAPIRes, err := getPluginInfo(pluginInfo.NormalizedName) |
22 |
| - if err != nil { |
23 |
| - return nil, err |
24 |
| - } |
25 |
| - |
26 |
| - foundVersion := "" |
27 |
| - if pluginInfo.Constraint == nil { |
28 |
| - foundVersion = pluginAPIRes.LatestRelease |
29 |
| - } else { |
30 |
| - versions := make(semver.Collection, 0) |
31 |
| - for v := range pluginAPIRes.Versions { |
32 |
| - pv, err := semver.NewVersion(v) |
33 |
| - if err != nil { |
34 |
| - return nil, err |
35 |
| - } |
36 |
| - versions = append(versions, pv) |
37 |
| - } |
38 |
| - sort.Sort(sort.Reverse(versions)) |
39 |
| - for _, v := range versions { |
40 |
| - if pluginInfo.Constraint.Check(v) { |
41 |
| - foundVersion = v.String() |
42 |
| - break |
43 |
| - } |
44 |
| - } |
45 |
| - } |
46 |
| - |
47 |
| - if foundVersion == "" { |
48 |
| - return nil, errors.New("version not found") |
| 17 | +func NewResolver() *Resolver { |
| 18 | + return &Resolver{ |
| 19 | + client: client.New(DefaultEndpoint), |
49 | 20 | }
|
| 21 | +} |
50 | 22 |
|
51 |
| - releaseAsset := pluginAPIRes.Versions[foundVersion].getMatchingAsset() |
52 |
| - if releaseAsset == nil { |
53 |
| - return nil, fmt.Errorf("a matching plugin was not found for %s/%s", runtime.GOOS, runtime.GOARCH) |
54 |
| - } |
55 |
| - return &resolver.PluginDownloadInfo{ |
56 |
| - URL: releaseAsset.URL, |
57 |
| - Checksum: releaseAsset.Checksum, |
58 |
| - FileName: releaseAsset.FileName, |
59 |
| - Version: foundVersion, |
60 |
| - }, nil |
| 23 | +func (r *Resolver) ResolvePlugin(pluginInfo *plugin.Info) (*resolver.PluginDownloadInfo, error) { |
| 24 | + return nil, fmt.Errorf("not implemented") |
61 | 25 | }
|
62 | 26 |
|
63 | 27 | func (r *Resolver) Names() []string {
|
64 |
| - return []string{"registry"} |
| 28 | + // TODO: this should be registry when the registry is ready |
| 29 | + return []string{"registry-beta"} |
65 | 30 | }
|
0 commit comments