mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 11:01:25 +01:00
feat!: rebuild tea on Cobra with explicit noun/verb commands (#1126)
- **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>
This commit is contained in:
1 parent
12e415a7a7
commit
f02245449b
456 files changed
+18892
-34015
No files matched your search
@@ -8,96 +8,29 @@
|
||||
|
||||
## 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.
|
||||
|
||||
```
|
||||
NAME:
|
||||
tea - command line tool to interact with Gitea
|
||||
|
||||
USAGE:
|
||||
tea [global options] [command [command options]]
|
||||
|
||||
VERSION:
|
||||
Version: 0.10.1+15-g8876fe3 golang: 1.25.0 go-sdk: v0.21.0
|
||||
|
||||
DESCRIPTION:
|
||||
tea is a productivity helper for Gitea. It can be used to manage most entities on
|
||||
one or multiple Gitea instances & provides local helpers like 'tea pr checkout'.
|
||||
|
||||
tea tries to make use of context provided by the repository in $PWD if available.
|
||||
tea works best in a upstream/fork workflow, when the local main branch tracks the
|
||||
upstream repo. tea assumes that local git state is published on the remote before
|
||||
doing operations with tea. Configuration is persisted in $XDG_CONFIG_HOME/tea.
|
||||
|
||||
COMMANDS:
|
||||
help, h Shows a list of commands or help for one command
|
||||
|
||||
ENTITIES:
|
||||
issues, issue, i List, create and update issues
|
||||
pulls, pull, pr Manage and checkout pull requests
|
||||
labels, label Manage issue labels
|
||||
milestones, milestone, ms List and create milestones
|
||||
releases, release, r Manage releases
|
||||
times, time, t Operate on tracked times of a repository's issues & pulls
|
||||
organizations, organization, org List, create, delete organizations
|
||||
repos, repo Show repository details
|
||||
branches, branch, b Consult branches
|
||||
actions Manage repository actions (secrets, variables)
|
||||
comment, c Add a comment to an issue / pr
|
||||
webhooks, webhook Manage repository webhooks
|
||||
|
||||
HELPERS:
|
||||
open, o Open something of the repository in web browser
|
||||
notifications, notification, n Show notifications
|
||||
clone, C Clone a repository locally
|
||||
|
||||
MISCELLANEOUS:
|
||||
whoami Show current logged in user
|
||||
admin, a Operations requiring admin access on the Gitea instance
|
||||
|
||||
SETUP:
|
||||
logins, login Log in to a Gitea server
|
||||
logout Log out from a Gitea server
|
||||
|
||||
GLOBAL OPTIONS:
|
||||
--debug, --vvv Enable debug mode (default: false)
|
||||
--help, -h show help
|
||||
--version, -v print the version
|
||||
|
||||
EXAMPLES
|
||||
tea login add # add a login once to get started
|
||||
|
||||
tea pulls # list open pulls for the repo in $PWD
|
||||
tea pulls --repo $HOME/foo # list open pulls for the repo in $HOME/foo
|
||||
tea pulls --remote upstream # list open pulls for the repo pointed at by
|
||||
# your local "upstream" git remote
|
||||
# list open pulls for any gitea repo at the given login instance
|
||||
tea pulls --repo gitea/tea --login gitea.com
|
||||
|
||||
tea milestone issues 0.7.0 # view open issues for milestone '0.7.0'
|
||||
tea issue 189 # view contents of issue 189
|
||||
tea open 189 # open web ui for issue 189
|
||||
tea open milestones # open web ui for milestones
|
||||
|
||||
tea actions secrets list # list all repository action secrets
|
||||
tea actions secrets create API_KEY # create a new secret (will prompt for value)
|
||||
tea actions variables list # list all repository action variables
|
||||
tea actions variables set API_URL https://api.example.com
|
||||
|
||||
tea webhooks list # list repository webhooks
|
||||
tea webhooks list --org myorg # list organization webhooks
|
||||
tea webhooks create https://example.com/hook --events push,pull_request
|
||||
|
||||
# send gitea desktop notifications every 5 minutes (bash + libnotify)
|
||||
while :; do tea notifications --mine -o simple | xargs -i notify-send {}; sleep 300; done
|
||||
|
||||
ABOUT
|
||||
Written & maintained by The Gitea Authors.
|
||||
If you find a bug or want to contribute, we'll welcome you at https://gitea.com/gitea/tea.
|
||||
More info about Gitea itself on https://about.gitea.com.
|
||||
```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 uses [gitea.dev/sdk](https://gitea.dev/sdk) and interacts with the Gitea API.
|
||||
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
|
||||
|
||||
@@ -128,15 +61,15 @@ Gitea can use many different authentication schemes, and not every authenticatio
|
||||
|
||||
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. Run `tea login add`, select **application token** authentication when asked for authentication type, and answer **yes** to the question if you have a token. Paste the generated token when asked for one.
|
||||
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.
|
||||
|
||||
Since 0.10 Gitea supports the much simpler oauth workflow but oauth may not be available on all Gitea deployments, and gets much more complex when running tea on a remote system.
|
||||
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 which is not visible in help. To generate the completions run one of the following commands depending on your shell.
|
||||
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
|
||||
@@ -148,8 +81,8 @@ source <(tea completion zsh)
|
||||
# fish
|
||||
tea completion fish > ~/.config/fish/completions/tea.fish
|
||||
|
||||
# Powershell
|
||||
Output the script to path/to/autocomplete/tea.ps1 an run it.
|
||||
# PowerShell profile
|
||||
tea completion powershell | Out-String | Invoke-Expression
|
||||
```
|
||||
|
||||
### Man Page
|
||||
@@ -164,16 +97,16 @@ man <(tea man)
|
||||
man (tea man | psub)
|
||||
|
||||
# write man page to a file
|
||||
tea man --out ./tea.man
|
||||
tea man --output-file ./tea.man
|
||||
```
|
||||
|
||||
## Compilation
|
||||
|
||||
Make sure you have a current Go version installed (1.26 or newer).
|
||||
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 clone gitea.com/gitea/tea ;)
|
||||
git clone https://gitea.com/gitea/tea.git # or: tea repo clone https://gitea.com/gitea/tea ;)
|
||||
cd tea
|
||||
make
|
||||
```
|
||||
@@ -193,8 +126,10 @@ Make sure you have a current Go version installed (1.26 or newer).
|
||||
|
||||
Fork -> Patch -> Push -> Pull Request
|
||||
|
||||
- `make test` run testsuite
|
||||
- `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.
|
||||
|
||||
Reference in new issue
Block a user