Skip to content

Commit ed2fd15

Browse files
committed
fix: resolver to catch invalid resolutions
1 parent b560c07 commit ed2fd15

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

resolver/resolver.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ func (v *Resolver) ResolveVersion() (string, error) {
9595
}
9696

9797
if len(proxyVersion.Version) == 0 {
98-
fallbackVersion, err := v.GithubFallbackResolveVersion()
99-
return fallbackVersion.Hash, err
98+
return fallbackVersion.Hash, fallbackErr
10099
}
101100

102101
// In case the value from the fallback (github's tag version )
@@ -141,6 +140,10 @@ func (v *Resolver) GithubFallbackResolveVersion() (PlumbingWithRange, error) {
141140
version = v.Value
142141
}
143142

143+
if len(parts) != 3 {
144+
return PlumbingWithRange{}, fmt.Errorf("error, invalid resolution reference for github: %v, expected resolution reference to be like so: github.com/<org>/<repo>", v.Pkg)
145+
}
146+
144147
resolvedV, err := gh.resolve(parts[1], parts[2], version)
145148
if err != nil {
146149
return PlumbingWithRange{}, err

resolver/resolver_test.go

+16
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,22 @@ func TestResolveVersionWithVersion(t *testing.T) {
130130
}
131131
}
132132

133+
func TestFallbackResolveVersionForInvalidPkg(t *testing.T) {
134+
inputVersion := "0.0.7-dev.5"
135+
r := Resolver{
136+
Pkg: "github.com/barelyhuman",
137+
}
138+
err := r.ParseVersion(inputVersion)
139+
if err != nil {
140+
t.Fatalf("Failed to parse version, err:%v", err)
141+
}
142+
143+
_, err = r.GithubFallbackResolveVersion()
144+
if err == nil {
145+
t.Fail()
146+
}
147+
}
148+
133149
func TestResolveVersionWithoutVersion(t *testing.T) {
134150

135151
inputVersion := ""

0 commit comments

Comments
 (0)