123456789101112131415161718192021222324252627282930313233343536373839 |
- package feed
- import (
- "fmt"
- "net/http"
- )
- type codebergReleaseResponseJson struct {
- TagName string `json:"tag_name"`
- PublishedAt string `json:"published_at"`
- HtmlUrl string `json:"html_url"`
- }
- func fetchLatestCodebergRelease(request *ReleaseRequest) (*AppRelease, error) {
- httpRequest, err := http.NewRequest(
- "GET",
- fmt.Sprintf(
- "https://codeberg.org/api/v1/repos/%s/releases/latest",
- request.Repository,
- ),
- nil,
- )
- if err != nil {
- return nil, err
- }
- response, err := decodeJsonFromRequest[codebergReleaseResponseJson](defaultClient, httpRequest)
- if err != nil {
- return nil, err
- }
- return &AppRelease{
- Source: ReleaseSourceCodeberg,
- Name: request.Repository,
- Version: normalizeVersionFormat(response.TagName),
- NotesUrl: response.HtmlUrl,
- TimeReleased: parseRFC3339Time(response.PublishedAt),
- }, nil
- }
|