1
1
package updater
2
2
3
3
import (
4
- "encoding/json"
5
- "fmt"
6
- "io"
7
- "net/http"
8
4
"strings"
9
5
10
6
"github.com/charmbracelet/log"
@@ -19,59 +15,7 @@ func (g *GitHubProvider) getPackageId(sourceId string) string {
19
15
return strings .Join (parts [1 :], "/" )
20
16
}
21
17
22
- // getWebUrl returns the GitHub web URL for a given source
23
- func (g * GitHubProvider ) getWebUrl (sourceId string ) string {
24
- return "https://github.com/" + g .getPackageId (sourceId )
25
- }
26
-
27
- // getApiUrl returns the GitHub API URL for a given source
28
- func (g * GitHubProvider ) getApiUrl (sourceId string ) string {
29
- return "https://api.github.com/repos/" + g .getPackageId (sourceId )
30
- }
31
-
32
18
// Update updates a package via the GitHub provider
33
19
func (g * GitHubProvider ) Update (sourceId string ) {
34
20
log .Info ("Updating via GitHub provider" , "source" , sourceId )
35
21
}
36
-
37
- func stripVersionPrefix (version string ) string {
38
- return strings .TrimPrefix (version , "v" )
39
- }
40
-
41
- // GetLatestReleaseVersionNumber returns the latest release version number for a GitHub repository
42
- func (g * GitHubProvider ) GetLatestReleaseVersionNumber (sourceId string ) string {
43
- url := g .getApiUrl (sourceId ) + "/releases/latest"
44
-
45
- // Create an HTTP GET request
46
- resp , err := http .Get (url )
47
- if err != nil {
48
- fmt .Printf ("Error making request: %v\n " , err )
49
- return ""
50
- }
51
- defer resp .Body .Close ()
52
-
53
- // Check if the repository exists or if there was an error
54
- if resp .StatusCode != http .StatusOK {
55
- fmt .Printf ("GitHub API returned status code %d\n " , resp .StatusCode )
56
- return ""
57
- }
58
-
59
- // Read and parse the JSON response
60
- body , err := io .ReadAll (resp .Body )
61
- if err != nil {
62
- fmt .Printf ("Error reading response body: %v\n " , err )
63
- return ""
64
- }
65
-
66
- // Structure to hold the JSON response
67
- var release struct {
68
- TagName string `json:"tag_name"`
69
- }
70
-
71
- if err := json .Unmarshal (body , & release ); err != nil {
72
- fmt .Printf ("Error parsing JSON: %v\n " , err )
73
- return ""
74
- }
75
-
76
- return stripVersionPrefix (release .TagName )
77
- }
0 commit comments