@@ -18,15 +18,16 @@ type PackagesInfo struct {
18
18
19
19
// PackageInfo is package info in pkgs response
20
20
type PackageInfo struct {
21
- Origin string `json:"origin"`
22
- Name string `json:"name"`
23
- Version string `json:"version"`
24
- Release string `json:"release"`
21
+ Origin string `json:"origin"`
22
+ Name string `json:"name"`
23
+ Version string `json:"version"`
24
+ Release string `json:"release"`
25
+ Channels []string `json:"channels"`
25
26
}
26
27
27
28
// Depot for hab
28
29
type Depot interface {
29
- PackageVersionsFromName (pkgName string ) ([]string , error )
30
+ PackageVersionsFromName (pkgName string , habChannel string ) ([]string , error )
30
31
}
31
32
32
33
type depot struct {
@@ -67,7 +68,7 @@ func (depo *depot) packagesInfo(pkgName string, from int) (PackagesInfo, error)
67
68
}
68
69
69
70
// PackageVersionsFromName fetch all versions from depot
70
- func (depo * depot ) PackageVersionsFromName (pkgName string ) ([]string , error ) {
71
+ func (depo * depot ) PackageVersionsFromName (pkgName string , habChannel string ) ([]string , error ) {
71
72
var packages []PackageInfo
72
73
73
74
offset := 0
@@ -93,8 +94,13 @@ func (depo *depot) PackageVersionsFromName(pkgName string) ([]string, error) {
93
94
if foundVersions [pkg .Version ] {
94
95
continue
95
96
}
96
- versions = append (versions , pkg .Version )
97
- foundVersions [pkg .Version ] = true
97
+ for _ , channel := range pkg .Channels {
98
+ if channel == habChannel {
99
+ versions = append (versions , pkg .Version )
100
+ foundVersions [pkg .Version ] = true
101
+ break
102
+ }
103
+ }
98
104
}
99
105
100
106
return versions , nil
0 commit comments