- **switch tea to the Cobra command tree:** `internal/app` wires the packages from parts 1–4 into explicit noun/verb commands with `--repo`, `--json` / `--jq`, `--sudo` and `--debug`; `main.go` points at it. Build, release and docs tooling (`tools/cli-docs`, Makefile, goreleaser, snap, CI) and README / CONTRIBUTING are updated. - **remove the urfave/cli command tree:** deletes `cmd/`, `modules/`, the old integration tests, contrib completion scripts and the generated `docs/CLI.md`, and drops their dependencies. This commit only deletes. ## Breaking changes This is a breaking release. It requires Gitea 28 or newer; configuration moves to separate `config.yml` and `hosts.yml` files and requires fresh authentication, and command names, aliases, flags and output formats change. `docs/migration-1.0.md` maps every old command, flag and environment variable to its replacement. ## Issues fixes #1118 fixes #1116 fixes #1115 fixes #1094 fixes #1091 fixes #1073 fixes #1052 fixes #1032 fixes #1023 fixes #966 fixes #908 fixes #833 fixes #831 fixes #817 fixes #804 fixes #779 fixes #770 fixes #737 fixes #697 fixes #726 fixes #677 fixes #672 fixes #633 fixes #632 fixes #560 fixes #556 fixes #523 fixes #516 fixes #510 fixes #504 fixes #500 fixes #482 fixes #406 fixes #403 fixes #373 fixes #351 fixes #344 fixes #326 fixes #325 fixes #323 fixes #246 fixes #240 fixes #232 fixes #197 fixes #172 fixes #141 fixes #69 fixes #1110 fixes #569 fixes #480 fixes #666 fixes #670 fixes #457 fixes #643 fixes #498 fixes #490 fixes #1069 fixes #834 fixes #602 fixes #328 fixes #417 fixes #571 fixes #1029 fixes #489 fixes #1050 fixes #162 fixes #430 fixes #1087 fixes #683 Reviewed-on: https://gitea.com/gitea/tea/pulls/1126 Reviewed-by: TheFox0x7 <95654+thefox0x7@noreply.gitea.com>
5.9 KiB
T E A
The official CLI for Gitea
Tea manages repositories, issues, pull requests, releases, and other Gitea resources with explicit commands suitable for local development and CI.
tea auth login --host https://gitea.example.org --with-token < token-file
tea issue list --repo owner/repository
tea pr view 123 --repo owner/repository --json
tea alias set bugs 'issue list --label bug'
tea help
tea 1.0 is a breaking release: it requires Gitea 28 or newer, commands, flags and
output formats changed, it uses separate config.yml and hosts.yml files, and it
requires fresh authentication.
Existing combined configuration files are left untouched; archive the old file or
choose an isolated TEA_CONFIG_DIR before setup. See
Migrating to tea 1.0 for the old-to-new mapping.
Run tea --help or tea <command> --help for supported commands and flags; the
full reference, man pages, and shell completions ship in each release's docs archive.
Credentials use the operating-system keyring by default; explicitly
select --credential-store file when private file storage is needed. For CI,
supply GITEA_TOKEN and its instance through TEA_HOST or GITEA_INSTANCE_URL;
environment credentials are never persisted.
Installation
There are different ways to get tea:
-
Install via your system package manager:
-
Use the prebuilt binaries from dl.gitea.com
-
Install from source: see Compilation
-
Docker: Tea at docker hub
Log in to Gitea from tea
Gitea can use many different authentication schemes, and not every authentication method will work with every Gitea deployment. When you are a Gitea instance administrator you can tweak your settings to fit your use case. For the method that is most likely to work with any Gitea deployment use the following steps:
-
Open your Gitea instance in a web browser
-
Log in to Gitea in your web browser. Any MFA, IDP, or whatever else should be available this way.
-
In your "user settings", generate an application token with at least user read permissions. If you want to do anything useful with the token add additional permissions/scopes.
-
Save the token in a private file and run
tea auth login --host https://your-instance --with-token < token-file. Credentials use the operating-system keyring by default.
You should now be logged in to your gitea instance from tea.
Alternatively, tea auth login --host https://your-instance --oauth authorizes tea in your browser. OAuth may not be available on all Gitea deployments, and needs a browser on the machine running tea.
Shell completion
If you installed from source or the package does not provide the completions with it you can add them yourself with tea completion <shell> command. To generate the completions run one of the following commands depending on your shell.
# .bashrc
source <(tea completion bash)
# .zshrc
source <(tea completion zsh)
# fish
tea completion fish > ~/.config/fish/completions/tea.fish
# PowerShell profile
tea completion powershell | Out-String | Invoke-Expression
Man Page
The hidden command tea man can be used to generate the tea man page.
# for bash or zsh
man <(tea man)
# for fish
man (tea man | psub)
# write man page to a file
tea man --output-file ./tea.man
Compilation
Make sure you have a current Go version installed (1.27 or newer).
-
To compile the source yourself with the recommended flags & tags:
git clone https://gitea.com/gitea/tea.git # or: tea repo clone https://gitea.com/gitea/tea ;) cd tea makeNote that GNU Make (gmake on OpenBSD) is required. If you want to install the compiled program you have to execute the following command:
make installThis installs the binary into the "bin" folder inside of your GOPATH folder (
go env GOPATH). It is possible that this folder isn't in your PATH Environment Variable. -
For a quick installation without
git&make, set $version and exec:go install gitea.dev/tea@${version}
Contributing
Fork -> Patch -> Push -> Pull Request
make testrun unit testsmake vetrun checks (check the order of imports; preventing failure on CI pipeline beforehand)make buildbuilds the production CLImake docsregenerates references, man pages, and shell completions indocs/generated(not committed; built on release)- ... (for other development tasks, check the
Makefile)
Please read the CONTRIBUTING documentation, it will tell you about internal structures and concepts.
License
This project is under the MIT License. See the LICENSE file for the full license text.