@@ -10,6 +10,8 @@ type ReleaseClient struct {
10
10
Client * github.Client
11
11
Org string
12
12
Repo string
13
+
14
+ ctx context.Context
13
15
}
14
16
15
17
// ReleaseAsset is the asset from GitHub release
@@ -21,6 +23,25 @@ type ReleaseAsset struct {
21
23
// Init init the GitHub client
22
24
func (g * ReleaseClient ) Init () {
23
25
g .Client = github .NewClient (nil )
26
+ g .ctx = context .TODO ()
27
+ }
28
+
29
+ // ListReleases returns the release list
30
+ func (g * ReleaseClient ) ListReleases (owner , repo string , count int ) (list []ReleaseAsset , err error ) {
31
+ opt := & github.ListOptions {
32
+ PerPage : count ,
33
+ }
34
+
35
+ var releaseList []* github.RepositoryRelease
36
+ if releaseList , _ , err = g .Client .Repositories .ListReleases (g .ctx , owner , repo , opt ); err == nil {
37
+ for i := range releaseList {
38
+ list = append (list , ReleaseAsset {
39
+ TagName : releaseList [i ].GetTagName (),
40
+ Body : releaseList [i ].GetBody (),
41
+ })
42
+ }
43
+ }
44
+ return
24
45
}
25
46
26
47
// GetLatestJCLIAsset returns the latest jcli asset
@@ -75,19 +96,13 @@ func (g *ReleaseClient) GetJCLIAsset(tagName string) (*ReleaseAsset, error) {
75
96
76
97
// GetReleaseAssetByTagName returns the release asset by tag name
77
98
func (g * ReleaseClient ) GetReleaseAssetByTagName (owner , repo , tagName string ) (ra * ReleaseAsset , err error ) {
78
- ctx := context .Background ()
79
-
80
- opt := & github.ListOptions {
81
- PerPage : 99999 ,
82
- }
83
-
84
- var releaseList []* github.RepositoryRelease
85
- if releaseList , _ , err = g .Client .Repositories .ListReleases (ctx , owner , repo , opt ); err == nil {
86
- for _ , item := range releaseList {
87
- if item .GetTagName () == tagName {
99
+ var list []ReleaseAsset
100
+ if list , err = g .ListReleases (owner , repo , 99999 ); err == nil {
101
+ for _ , item := range list {
102
+ if item .TagName == tagName {
88
103
ra = & ReleaseAsset {
89
- TagName : item .GetTagName () ,
90
- Body : item .GetBody () ,
104
+ TagName : item .TagName ,
105
+ Body : item .Body ,
91
106
}
92
107
break
93
108
}
0 commit comments