From 8933906102ab8817f3ada10af6562d10ee37c6d1 Mon Sep 17 00:00:00 2001 From: oxpoe <324556608+oxpoe@users.noreply.github.com> Date: Thu, 15 Oct 2026 07:41:41 +0700 Subject: [PATCH] chore: migrasi kanonik ke gitea.oxpoe.qzz.io/oxpoe/tia-love (module path, installer, Gitea Actions, goreleaser) --- {.github => .gitea}/workflows/ci.yml | 0 {.github => .gitea}/workflows/release.yml | 4 +++- .goreleaser.yml | 5 +++++ README.md | 5 +++-- cmd/tia-love/main.go | 2 +- docs/PRD.md | 12 ++++++------ go.mod | 2 +- install.sh | 13 +++++++------ internal/app/app.go | 6 +++--- internal/ui/components/toast.go | 2 +- 10 files changed, 30 insertions(+), 21 deletions(-) rename {.github => .gitea}/workflows/ci.yml (100%) rename {.github => .gitea}/workflows/release.yml (73%) diff --git a/.github/workflows/ci.yml b/.gitea/workflows/ci.yml similarity index 100% rename from .github/workflows/ci.yml rename to .gitea/workflows/ci.yml diff --git a/.github/workflows/release.yml b/.gitea/workflows/release.yml similarity index 73% rename from .github/workflows/release.yml rename to .gitea/workflows/release.yml index 88d9fc1..318df33 100644 --- a/.github/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -25,4 +25,6 @@ jobs: version: latest args: release --clean env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Set di repo Gitea → Settings → Actions → Secrets, + # scope token: write:repository + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} diff --git a/.goreleaser.yml b/.goreleaser.yml index 466d778..0e872fb 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -4,6 +4,11 @@ version: 2 project_name: tia +# Rilis dipublikasikan ke Gitea (bukan GitHub) — set GITEA_TOKEN saat release. +gitea_urls: + api: https://gitea.oxpoe.qzz.io/api/v1 + download: https://gitea.oxpoe.qzz.io + builds: - id: tia-love main: ./cmd/tia-love diff --git a/README.md b/README.md index 63b4ac4..aab33b2 100644 --- a/README.md +++ b/README.md @@ -24,11 +24,12 @@ Nama binary final: **`tia-love`** (nama produk tetap **tia**). Setelah rilis pertama tersedia: ```bash -curl -fsSL https://raw.githubusercontent.com/oxpoe/tia/main/install.sh | sh +curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh ``` Skrip mendeteksi OS/arch (Linux/macOS · amd64/arm64), memverifikasi SHA256, dan memasang -ke `~/.local/bin/tia-love` tanpa sudo. Alternatif: unduh manual dari GitHub Releases. +ke `~/.local/bin/tia-love` tanpa sudo. Alternatif: unduh manual dari halaman Releases di +Gitea (https://gitea.oxpoe.qzz.io/oxpoe/tia-love). Rilis dibangun oleh GoReleaser — dry run lokal: `goreleaser release --snapshot --clean`. diff --git a/cmd/tia-love/main.go b/cmd/tia-love/main.go index fae8b99..b6cba11 100644 --- a/cmd/tia-love/main.go +++ b/cmd/tia-love/main.go @@ -8,7 +8,7 @@ import ( tea "charm.land/bubbletea/v2" - "github.com/oxpoe/tia/internal/app" + "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/app" ) const usage = `tia — Terminal Is A My Way (Just Work) diff --git a/docs/PRD.md b/docs/PRD.md index ae0cb62..9eb3610 100644 --- a/docs/PRD.md +++ b/docs/PRD.md @@ -342,18 +342,18 @@ tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel - **Metode Instalasi:** 1. **One-Line Command (Rekomendasi):** ```bash - curl -fsSL https://raw.githubusercontent.com/oxpoe/tia/main/install.sh | sh + curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh ``` - Skrip otomatis mendeteksi OS (Linux, macOS) dan arsitektur CPU (`amd64`, `arm64`). - - Mengunduh rilis tarball terbaru dari GitHub Releases. + - Mengunduh rilis tarball terbaru dari Gitea Releases (gitea.oxpoe.qzz.io). - Memverifikasi checksum SHA256 secara otomatis demi keamanan sebelum mengekstrak. - Memasang binary ke direktori pengguna (`~/.local/bin/tia-love` tanpa memerlukan akses `sudo`). - Memberikan instruksi jika `~/.local/bin` belum ada di `$PATH`. 2. **Manual Download Precompiled Binary:** - - Pengguna dapat langsung menuju halaman GitHub Releases, mengunduh file binary terkompresi (misal: `tia-love_linux_amd64.tar.gz`), mengekstraknya, dan langsung menjalankannya (`./tia-love`). + - Pengguna dapat langsung menuju halaman Releases di Gitea (https://gitea.oxpoe.qzz.io/oxpoe/tia-love/releases), mengunduh file binary terkompresi (misal: `tia-love_linux_amd64.tar.gz`), mengekstraknya, dan langsung menjalankannya (`./tia-love`). 3. **Go Install (untuk developer Go):** ```bash - go install github.com/oxpoe/tia/cmd/tia-love@latest + go install gitea.oxpoe.qzz.io/oxpoe/tia-love/cmd/tia-love@latest ``` - **Acceptance Criteria:** - Skrip instalasi aman (`set -euo pipefail`), transparan, dan tidak meminta privilege root/sudo secara membabi-buta. @@ -1200,7 +1200,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem | Config | Basic config load/save | | Theme | Catppuccin (Mocha/Latte), mode Otomatis/Gelap/Terang/Terminal, deteksi background terminal, semua warna via token semantik | | Status bar | Context-aware help text (hint klikable) | -| **Rilis awal** | goreleaser + GitHub Releases + `install.sh` + checksum (F-029), `tia-love --version` / `tia-love doctor` | +| **Rilis awal** | goreleaser + Gitea Releases + `install.sh` + checksum (F-029), `tia-love --version` / `tia-love doctor` | **Exit Criteria:** Jalankan `tia-love` → splash → Home Dashboard (jam, ringkasan) → masuk workspace, lihat semua resource Docker, navigasi dengan keyboard **dan mouse**; setiap aksi memberi suara + toast; instal dengan satu baris perintah berhasil di mesin bersih @@ -1314,7 +1314,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem ### Distribution - **Satu binary statis** (`CGO_ENABLED=0`), tanpa runtime dependency selain Docker (audio memakai library pure-Go; server audio hanya dibutuhkan jika suara diaktifkan) -- Instal satu baris (skrip) **atau** unduh binary manual dari GitHub Releases, detail di **F-029** +- Instal satu baris (skrip) **atau** unduh binary manual dari Gitea Releases, detail di **F-029** - Release otomatis via goreleaser: `.tar.gz`/`.zip` + `checksums.txt`; `.deb`, `.rpm`, Homebrew, AUR menyusul - Binary name: `tia-love` (nama produk tetap: tia) diff --git a/go.mod b/go.mod index 933f649..c600d53 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/oxpoe/tia +module gitea.oxpoe.qzz.io/oxpoe/tia-love go 1.27.1 diff --git a/install.sh b/install.sh index a057e6c..67501c4 100755 --- a/install.sh +++ b/install.sh @@ -1,15 +1,16 @@ #!/bin/sh # tia-love — one-line installer (F-029) # -# curl -fsSL https://raw.githubusercontent.com/oxpoe/tia/main/install.sh | sh +# curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh # -# Mendeteksi OS/arch, mengunduh rilis terbaru dari GitHub Releases, +# Mendeteksi OS/arch, mengunduh rilis terbaru dari Gitea Releases, # memverifikasi SHA256, lalu memasang ke ~/.local/bin (tanpa sudo). # Override lokasi: TIA_LOVE_INSTALL_DIR=/path set -eu -REPO="oxpoe/tia" +GITEA="${TIA_LOVE_GITEA_URL:-https://gitea.oxpoe.qzz.io}" +REPO="oxpoe/tia-love" BIN="tia-love" DEST="${TIA_LOVE_INSTALL_DIR:-$HOME/.local/bin}" @@ -32,15 +33,15 @@ case "$os" in esac echo "==> mencari rilis terbaru..." -tag=$(curl -fsSL "https://api.github.com/repos/$REPO/releases/latest" | +tag=$(curl -fsSL "$GITEA/api/v1/repos/$REPO/releases/latest" | grep -o '"tag_name": *"[^"]*"' | head -1 | cut -d'"' -f4) if [ -z "${tag:-}" ]; then - echo "tia-love: tidak menemukan rilis di github.com/$REPO/releases" >&2 + echo "tia-love: tidak menemukan rilis di $GITEA/$REPO/releases" >&2 exit 1 fi tarball="${BIN}_${os}_${arch}.tar.gz" -base="https://github.com/$REPO/releases/download/$tag" +base="$GITEA/$REPO/releases/download/$tag" tmp=$(mktemp -d) trap 'rm -rf "$tmp"' EXIT diff --git a/internal/app/app.go b/internal/app/app.go index 19bccab..1bc88f9 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -8,9 +8,9 @@ import ( tea "charm.land/bubbletea/v2" "charm.land/lipgloss/v2" - "github.com/oxpoe/tia/internal/audio" - "github.com/oxpoe/tia/internal/ui/animation" - "github.com/oxpoe/tia/internal/ui/components" + "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/audio" + "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/ui/animation" + "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/ui/components" ) // Model root sementara (T-0.2–T-0.4, Phase 0). diff --git a/internal/ui/components/toast.go b/internal/ui/components/toast.go index fd1090a..61c38c7 100644 --- a/internal/ui/components/toast.go +++ b/internal/ui/components/toast.go @@ -9,7 +9,7 @@ import ( "charm.land/lipgloss/v2" "github.com/charmbracelet/harmonica" - "github.com/oxpoe/tia/internal/ui/animation" + "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/ui/animation" ) // Toast — notifikasi melayang dari tengah atas layar (F-025).