mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 19:11:25 +01:00
- **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>
141 lines
5.9 KiB
Markdown
141 lines
5.9 KiB
Markdown
# <img alt='tea logo' src='https://gitea.com/repo-avatars/550-80a3a8c2ab0e2c2d69f296b7f8582485' height="40"/> *T E A*
|
|
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://gitea.com/gitea/tea/releases)
|
|
[](https://discord.gg/Gitea)
|
|
[](https://goreportcard.com/report/gitea.dev/tea) [](https://godoc.org/gitea.dev/tea)
|
|

|
|
|
|
## 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.
|
|
|
|
```sh
|
|
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](docs/migration-1.0.md) 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`:
|
|
|
|
1. Install via your system package manager:
|
|
- macOS via `brew` (official):
|
|
```sh
|
|
brew install tea
|
|
```
|
|
- arch linux ([tea](https://archlinux.org/packages/extra/x86_64/tea/), thirdparty)
|
|
- alpine linux ([tea](https://pkgs.alpinelinux.org/packages?name=tea&branch=edge), thirdparty)
|
|
- Windows via `MSYS2` ([tea](https://packages.msys2.org/base/mingw-w64-tea), thirdparty)
|
|
|
|
2. Use the prebuilt binaries from [dl.gitea.com](https://dl.gitea.com/tea/)
|
|
|
|
3. Install from source: [see *Compilation*](#compilation)
|
|
|
|
4. Docker: [Tea at docker hub](https://hub.docker.com/r/gitea/tea)
|
|
|
|
### 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:
|
|
|
|
1. Open your Gitea instance in a web browser
|
|
|
|
2. Log in to Gitea in your web browser. Any MFA, IDP, or whatever else should be available this way.
|
|
|
|
3. 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.
|
|
|
|
4. 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.
|
|
|
|
```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.
|
|
|
|
```shell
|
|
# 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:
|
|
```sh
|
|
git clone https://gitea.com/gitea/tea.git # or: tea repo clone https://gitea.com/gitea/tea ;)
|
|
cd tea
|
|
make
|
|
```
|
|
Note that GNU Make (gmake on OpenBSD) is required.
|
|
If you want to install the compiled program you have to execute the following command:
|
|
```sh
|
|
make install
|
|
```
|
|
This 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:
|
|
```sh
|
|
go install gitea.dev/tea@${version}
|
|
```
|
|
|
|
## Contributing
|
|
|
|
Fork -> Patch -> Push -> Pull Request
|
|
|
|
- `make test` run unit tests
|
|
- `make vet` run checks (check the order of imports; preventing failure on CI pipeline beforehand)
|
|
- `make build` builds the production CLI
|
|
- `make docs` regenerates references, man pages, and shell completions in `docs/generated` (not committed; built on release)
|
|
- ... (for other development tasks, check the `Makefile`)
|
|
|
|
**Please** read the [CONTRIBUTING](CONTRIBUTING.md) documentation, it will tell you about internal structures and concepts.
|
|
|
|
## License
|
|
|
|
This project is under the MIT License. See the [LICENSE](LICENSE) file for the
|
|
full license text.
|