實現 login 指令(#14):tea 相容組態管理

- internal/gitea/config.go:tea 組態的行級編輯引擎(新增/更新/
  設預設/移除),未知欄位與 preferences 區段逐字保留;原子寫入
  (暫存檔 + rename,0600)。
- internal/cli/login.go:teai login list/add/default/remove。add 先以
  token 呼叫 GET /user 驗證,成功才寫入並記下帳號;未給 --token 時
  自 stdin 讀一行;401 結束碼 3。未給 --name 時同站既有項目就地更新。
- 輸出欄位 name/url/user/default,永不輸出 token。
- 測試:編輯引擎 12 項、指令層 11 項(httptest 假 API),並以真 tea
  驗證 teai 寫出的組態可互通(tea whoami 讀出同帳號)。

Closes #14
This commit is contained in:
ceo
2026-09-10 09:32:53 +08:00
parent a7952c6834
commit f8fc16ae49
6 changed files with 1362 additions and 0 deletions
+5
View File
@@ -89,6 +89,11 @@ type Env struct {
// commands 是已註冊的子命令表。新增功能時在這裡註冊即可。
var commands = map[string]*command{
"login": {
name: "login",
usage: "管理登入(list/add/default/remove)",
run: runLogin,
},
"version": {
name: "version",
usage: "顯示版本資訊",