id = "tea" name = "Tea" homepage = "https://about.gitea.com/products/tea/" description = "The official command-line interface for Gitea." executables = ["tea"] [dotfiles] # https://gitea.cn/gitea/tea (the official Gitea mirror) documents that Tea # persists configuration in $XDG_CONFIG_HOME/tea. The Go package docs at # https://pkg.go.dev/code.gitea.io/tea/modules/config describe config.yml's # logins, preferences and token fields. paths = ["[configHome]/tea/config.yml"] exclude = [] secret = [] side_effect = false # Plain-token logins are credentials; OAuth tokens may instead be in the OS # credential store, so only the documented YAML token fields are lifted. [[dotfiles.secret_paths]] file = "[configHome]/tea/config.yml" match = { key_path = ["logins.*.token", "logins.*.refresh_token"] } [commands] format = 1 label = "Gitea CLI" description = "Common tea jobs: list issues, create an issue, create a pull request. Login management, reviews, releases and the other subcommands are outside this form." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["issues", "list"] label = "List issues" description = "List issues of the repository. Fields and paging beyond the ones shown are left out." [[commands.subcommand.source]] id = "tea-cli" kind = "manual" url = "https://gitea.com/gitea/tea/raw/branch/main/docs/CLI.md" revision = "main 2026-10-27" evidence = """ ### list, ls List issues of the repository **--assignee, -a**="": **--author, -A**="": **--keyword, -k**="": Filter by search string **--labels, -L**="": Comma-separated list of labels to match issues against. **--limit, --lm**="": specify limit of items per page (default: 30) **--milestones, -m**="": Comma-separated list of milestones to match issues against. **--output, -o**="": Output format. (simple, table, csv, tsv, yaml, json) **--repo, -r**="": Override local repository path or gitea repository slug to interact with. Optional **--state**="": Filter by state (all|open|closed) """ [[commands.subcommand.field]] id = "state" label = "State" type = "enum" option = ["--state"] choices = [{ value = "all", label = "All" }, { value = "open", label = "Open" }, { value = "closed", label = "Closed" }] sources = ["tea-cli"] [[commands.subcommand.field]] id = "keyword" label = "Search text" type = "string" option = ["--keyword", "-k"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "labels" label = "Labels" description = "Comma-separated list of labels." type = "string" option = ["--labels", "-L"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "milestones" label = "Milestones" description = "Comma-separated list of milestones." type = "string" option = ["--milestones", "-m"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "assignee" label = "Assignee" type = "string" option = ["--assignee", "-a"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "author" label = "Author" type = "string" option = ["--author", "-A"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "limit" label = "Items per page" type = "integer" option = ["--limit", "--lm"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "output" label = "Output format" type = "enum" option = ["--output", "-o"] choices = [{ value = "simple", label = "Simple" }, { value = "table", label = "Table" }, { value = "csv", label = "CSV" }, { value = "tsv", label = "TSV" }, { value = "yaml", label = "YAML" }, { value = "json", label = "JSON" }] sources = ["tea-cli"] [[commands.subcommand.field]] id = "repo" label = "Repository" description = "Local repository path or Gitea repository slug." type = "string" option = ["--repo", "-r"] sources = ["tea-cli"] [[commands.subcommand.task]] id = "open" label = "Open issues" fields = ["state", "labels", "repo"] set = { state = ["open"] } [[commands.subcommand.task]] id = "json" label = "Export as JSON" fields = ["state", "output", "repo"] set = { output = ["json"] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["state", "keyword", "labels", "repo"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["milestones", "assignee", "author", "limit", "output"] [[commands.subcommand]] path = ["issues", "create"] label = "Create an issue" description = "Create an issue on the repository. Deadline and referenced-version options are left out." [[commands.subcommand.source]] id = "tea-cli" kind = "manual" url = "https://gitea.com/gitea/tea/raw/branch/main/docs/CLI.md" revision = "main 2026-10-27" evidence = """ ### create, c Create an issue on repository **--assignees, -a**="": Comma-separated list of usernames to assign **--description, -d**="": **--description-file**="": Read description from file ('-' for stdin) **--labels, -L**="": Comma-separated list of labels to assign **--milestone, -m**="": Milestone to assign **--repo, -r**="": Override local repository path or gitea repository slug to interact with. Optional **--title, -t**="": """ [[commands.subcommand.field]] id = "title" label = "Title" type = "string" option = ["--title", "-t"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "description" label = "Description" type = "string" option = ["--description", "-d"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "description_file" label = "Description file" type = "path" option = ["--description-file"] path = { kind = "file", role = "input" } sources = ["tea-cli"] [[commands.subcommand.field]] id = "labels" label = "Labels" description = "Comma-separated list of labels." type = "string" option = ["--labels", "-L"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "assignees" label = "Assignees" description = "Comma-separated list of usernames." type = "string" option = ["--assignees", "-a"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "milestone" label = "Milestone" type = "string" option = ["--milestone", "-m"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "repo" label = "Repository" description = "Local repository path or Gitea repository slug." type = "string" option = ["--repo", "-r"] sources = ["tea-cli"] [[commands.subcommand.task]] id = "simple" label = "Title and description" fields = ["title", "description", "repo"] required = ["title"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["title", "description", "description_file", "repo"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["labels", "assignees", "milestone"] [[commands.subcommand]] path = ["pulls", "create"] label = "Create a pull request" description = "Create a pull request from the current or a given branch. Agit flow and deadline options are left out." [[commands.subcommand.source]] id = "tea-cli" kind = "manual" url = "https://gitea.com/gitea/tea/raw/branch/main/docs/CLI.md" revision = "main 2026-10-27" evidence = """ ### create, c Create a pull-request **--allow-maintainer-edits, --edits**: Enable maintainers to push to the base branch of created pull **--assignees, -a**="": Comma-separated list of usernames to assign **--base, -b**="": Branch name of the PR target (default is repos default branch) **--description, -d**="": **--draft**: Create as a draft (prepends "WIP: " to the title; Gitea treats WIP-prefixed PRs as drafts) **--head**="": Branch name of the PR source (default is current one). To specify a different head repo, use : **--labels, -L**="": Comma-separated list of labels to assign **--milestone, -m**="": Milestone to assign **--repo, -r**="": Override local repository path or gitea repository slug to interact with. Optional **--title, -t**="": """ [[commands.subcommand.field]] id = "title" label = "Title" type = "string" option = ["--title", "-t"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "description" label = "Description" type = "string" option = ["--description", "-d"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "base" label = "Target branch" description = "Defaults to the repository's default branch." type = "string" option = ["--base", "-b"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "head" label = "Source branch" description = "Defaults to the current branch; use user:branch for another head repository." type = "string" option = ["--head"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "draft" label = "Draft" type = "boolean" option = ["--draft"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "edits" label = "Allow maintainer edits" type = "boolean" option = ["--allow-maintainer-edits", "--edits"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "labels" label = "Labels" description = "Comma-separated list of labels." type = "string" option = ["--labels", "-L"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "assignees" label = "Assignees" description = "Comma-separated list of usernames." type = "string" option = ["--assignees", "-a"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "milestone" label = "Milestone" type = "string" option = ["--milestone", "-m"] sources = ["tea-cli"] [[commands.subcommand.field]] id = "repo" label = "Repository" description = "Local repository path or Gitea repository slug." type = "string" option = ["--repo", "-r"] sources = ["tea-cli"] [[commands.subcommand.task]] id = "pr" label = "Pull request" fields = ["title", "description", "base", "repo"] required = ["title"] [[commands.subcommand.task]] id = "draft_pr" label = "Draft pull request" fields = ["title", "description", "base", "draft", "repo"] required = ["title"] set = { draft = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["title", "description", "base", "head", "draft", "repo"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["edits", "labels", "assignees", "milestone"]