Move to Gitea: git.ryuvia.com/niklas/terdut-tui
The module path, the CI pipeline and the self-updater all named GitHub. They now name the Gitea instance everything else already runs on. The workflows are rewritten rather than translated, for the reason recorded in ci.yaml: Gitea's runner image is ubuntu:22.04, whose nodejs is Node 12, so no JS action runs there -- actions/checkout@v4 dies with a SyntaxError before doing anything. Every step is shell and checkout is a plain clone, which this public repo needs no credential for. upload-artifact/download-artifact are JS actions too, and there is no artifact store here, so the job that builds the binaries is the job that publishes them. internal/updater keeps its release and asset types unchanged: Gitea's release payload carries the same tag_name, and its attachments the same name and browser_download_url, so only the URL, the Accept header and one error string move. The asset naming in release.yaml is load-bearing for that matching. This does strand already-installed binaries, which still poll api.github.com. The GitHub repository is left in place and untouched, so they report themselves up to date rather than erroring; its last release is the bridge, and crossing it is a one-time manual download.
This commit is contained in:
@@ -12,7 +12,14 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const releaseAPI = "https://api.github.com/repos/yeniklas/terdut-tui/releases/latest"
|
||||
// Gitea's release payload carries the same tag_name, and its attachments the same name
|
||||
// and browser_download_url, so the types below are unchanged from the GitHub original.
|
||||
//
|
||||
// A binary installed before the move still polls api.github.com and will never see a
|
||||
// release published here. That GitHub repository is still in place, so such a build
|
||||
// reports itself up to date rather than erroring -- its last GitHub release is the
|
||||
// bridge, and crossing it is a one-time manual download.
|
||||
const releaseAPI = "https://git.ryuvia.com/api/v1/repos/niklas/terdut-tui/releases/latest"
|
||||
|
||||
type release struct {
|
||||
TagName string `json:"tag_name"`
|
||||
@@ -125,7 +132,7 @@ func fetchLatest() (*release, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Header.Set("Accept", "application/vnd.github+json")
|
||||
req.Header.Set("Accept", "application/json")
|
||||
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
if err != nil {
|
||||
@@ -134,7 +141,7 @@ func fetchLatest() (*release, error) {
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, fmt.Errorf("GitHub API returned %s", resp.Status)
|
||||
return nil, fmt.Errorf("Gitea API returned %s", resp.Status)
|
||||
}
|
||||
|
||||
var rel release
|
||||
|
||||
Reference in New Issue
Block a user