gitea.tea/cmd/login.go
Lunny Xiao 9187a22c2a feat(login): add status command (#1087)
Add `tea login status` to verify the stored token for one or all
configured logins. It reports login validity, auth method, token
expiry, and whether the git credential helper is configured, and
captures OAuth refresh failures instead of exiting.

Fixes #1087
2026-08-27 09:44:29 -07:00

58 lines
1.2 KiB
Go

// Copyright 2020 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package cmd
import (
"context"
"fmt"
"gitea.dev/tea/cmd/login"
"gitea.dev/tea/modules/config"
"gitea.dev/tea/modules/print"
"github.com/urfave/cli/v3"
)
// CmdLogin represents to login a gitea server.
var CmdLogin = cli.Command{
Name: "logins",
Aliases: []string{"login"},
Category: catSetup,
Usage: "Log in to a Gitea server",
Description: `Log in to a Gitea server`,
ArgsUsage: "[<login name>]",
Action: runLogins,
Commands: []*cli.Command{
&login.CmdLoginList,
&login.CmdLoginAdd,
&login.CmdLoginEdit,
&login.CmdLoginDelete,
&login.CmdLoginSetDefault,
&login.CmdLoginHelper,
&login.CmdLoginOAuthRefresh,
&login.CmdLoginStatus,
},
}
func runLogins(ctx context.Context, cmd *cli.Command) error {
if cmd.Args().Len() == 1 {
return runLoginDetail(cmd.Args().First())
}
return login.RunLoginList(ctx, cmd)
}
func runLoginDetail(name string) error {
l, err := config.GetLoginByName(name)
if err != nil {
return err
}
if l == nil {
fmt.Printf("Login '%s' do not exist\n\n", name)
return nil
}
print.LoginDetails(l)
return nil
}