id = "tea"
name = "Tea"
homepage = "https://about.gitea.com/products/tea/"
description = "The official command-line interface for Gitea."
executables = ["tea"]
[dotfiles]
paths = ["[configHome]/tea/config.yml"]
exclude = []
secret = []
side_effect = false
[[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 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 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 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 <user>:<branch>
**--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"]