mirror of
https://github.com/hanzoai/forge.git
synced 2026-10-30 15:00:39 +00:00
Audited what users and operators actually see, not raw grep counts. The rendered DOM, page titles, meta and footer on git.hanzo.ai were already clean; the frontend bundle is clean on main (the live hits were a stale deployed image, v1.26.19). What survived was server-side text and locales. User-visible: - Locale values: 12 -> 0 across 11 languages. The bulk was the admin self-check telling operators to run "gitea doctor convert"; our binary is gitd, so the instruction was wrong as well as off-brand. - Credential prompt realm when OAuth2 is disabled (the branch whose job is to NOT match Git Credential Manager's "Gitea" probe). - Admin diagnosis download is hanzo-git-diagnosis-*.zip; dump artifacts are hanzo-git-dump-*.zip / hanzo-git-db.sql. - Azure AD icon gradient ids no longer carry the upstream name. Source hygiene only: svgo cleanupIds already rewrote them before shipping. Outbound identity (what third parties see): - User-Agent to OAuth providers, haveibeenpwned and remote LFS servers is now Hanzo Git. The git-lfs "git-lfs/<version>" prefix is untouched; some LFS servers parse it. Operator-visible: - CLI help, descriptions and examples name gitd, not gitea. Several were telling operators to run commands that do not exist. - Migration/startup failure text (wrong-DB-version, no-SQLite-support, collation warning, internal-API contact error). The "upgrade to Gitea 1.6.4 first" note keeps the upstream name: that release is a real point in the schema lineage and renaming it would make it a lie. - Prometheus namespace gitea_ -> hanzogit_. Verified metrics are disabled on git.hanzo.ai, so no dashboard exists to break; this is the cheapest moment to do it. - Default log file, PID file, and the container entrypoint message. - Our own X-* headers are now function-namespaced per the platform's vendor-free convention: X-Cache-Debug, X-Internal-Auth, X-LFS-Content-Length, X-Vite-Dev-Server. Every side ships in one binary, so the rename is atomic. Correctness found on the way: - LLM.md documented GITEA__<section>__<KEY>; only GIT__ is accepted and there is no fallback, so a stale GITEA__ var is silently ignored. - EnvConfigKeyPrefixGitea held "GIT__" — name now matches its value. - api_packages_container_test.go still asserted the old registry realm while the code emits ours, so that test could not pass. - README told developers to run ./gitea web; docs/build-setup.md told contributors to clone go-gitea/gitea instead of this fork. Deliberately kept, and why, recorded in LLM.md: MIT attribution, dependency import paths, addressing values whose rename silently redirects (webhook type, .gitea/ repo conventions, index and analyzer names, /data/gitea), the GCM interop realm, and three wire contracts with external consumers (X-GITEA-OTP, webhook delivery headers, mail headers) that need an owner decision rather than a blind rename. Co-authored-by: Hanzo Dev <[email protected]>
1.2 KiB
1.2 KiB
Hanzo Git
Hanzo 自架的 Git 平台 — Git 託管、程式碼審查、問題追蹤、套件庫,以及相容於 GitHub Actions 的 CI/CD,並透過 hanzo.id OIDC 原生整合 IAM。服務位於 git.hanzo.ai。
本專案是 Gitea(MIT)的白牌分支。上游版權與授權完整保留於 LICENSE;身分驗證改接 Hanzo IAM 而非本機帳號,產品品牌為 Hanzo Git。
建置與部署
如同每個 Hanzo 儲存庫,只有一種方式:根目錄的 hanzo.yml 宣告映像檔與測試;
約七行的 .hanzo/workflows/cicd.yml 匯入 hanzoai/ci,於我們自己的 runner 上建置並推送
ghcr.io/hanzoai/git。切勿在本機建置映像檔。
執行中的服務定義於 hanzoai/universe(git operator App CR):單寫入者 SQLite
部署,組態經由 GIT__<section>__<KEY> 環境變數契約注入,OIDC 登入對接 hanzo.id。
開發
本機環境請見 docs/development.md。建置完成後,執行
./gitd web 啟動伺服器,或 ./gitd help 檢視所有指令。