fix(doctor): run every check instead of failing at the first problem

tea doctor printed the resolved instance, account and repository and
checked nothing; it failed with exit code 4 exactly when it was needed,
such as in a clone of an instance without an account, and with a
GITEA_TOKEN of another instance it blamed GITEA_INSTANCE_URL.

It now checks the settings files, whether the instance answers (version
and latency), whether the account's credential works and its token
scopes, whether the repository is readable (default branch), Git and
whether it asks tea for credentials, and where SSH remotes connect. Each
check shows a mark on a terminal and the command that fixes a problem;
piped, each is a tab-separated line. A GITEA_TOKEN for another instance
names both instances. doctor exits with 1 when a check fails, and --json
keeps the target fields and adds checks[].

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-11 23:50:44 +02:00
1 parent a2bea8da23
commit 014dba8512
4 files changed
+339 -25

No files matched your search

+1 -1
View File
@@ -521,7 +521,7 @@ func commandOutputFields(cmd *cobra.Command) []string {
}
case "tea":
if cmd.Name() == "doctor" {
return jsonFields[target]()
return jsonFields[doctorReport]()
}
case "attachment":
return jsonFields[services.IssueAttachment]()