| GT-ISSUE-EDIT(1) | gitea-cli Manual | GT-ISSUE-EDIT(1) |
NAME
gt-issue-edit - Edit issues: title, body, labels, assignees, milestone, deadline
SYNOPSIS
gt issue edit {<number> | <url>}... [flags]
DESCRIPTION
Edit one or more issues. Without flags on a terminal, a form edits one issue at a time, starting from its current values. Label and assignee flags add to or remove from each issue's current values; the --set flags replace them. The blocked_by and blocks JSON fields cost extra requests, made only when the output includes them (see gt help formatting).
Gitea changes the milestone, assignees and due date only for people who can write to the issues of the repository, and leaves them as they were for the author of an issue who cannot: gt then names the flags or form fields it left out and fails. Gitea refuses their label changes outright, so gt sends the other changes first.
ARGUMENTS
An issue can be supplied as argument in any of the following formats: - by number, e.g. "123" or "#123" - by URL, e.g. "https://gitea.com/OWNER/REPO/issues/123" - by repository and number, e.g. "OWNER/REPO#123" Several issues must be in one repository. Next to "OWNER/REPO#123" or a URL, "124" means OWNER/REPO#124, unless gt targets another repository otherwise, such as the clone's, --repo or GITEA_CLI_REPO: then the command fails, and the number must be qualified.
JSON FIELDS
assignees, author, blocked_by, blocks, body, comments, created_at, due_date, id, kind, labels, milestone, number, ref, state, title, updated_at, url
OPTIONS
--add-assignee=[] Add assignees by login; @me for yourself
--add-blocked-by=[] Mark the issue as blocked by other issues: N, #N, OWNER/REPO#N or a URL
--add-label=[] Add labels by name; prefix repo: or org: to disambiguate
--add-project=[] Add the issue to the project with this ID or title, a number being an ID first (repeatable)
-b, --body="" New body; empty clears it
-F, --body-file="" Read the body from file, or - for stdin
--deadline="" Due date: YYYY-MM-DD, RFC3339 or Unix timestamp; only the date counts, as the end of that day in UTC; empty clears it
-e, --editor[=false] Edit the current body in the configured editor
-h, --help[=false] help for edit
-m, --milestone="" Move the issue to a milestone by title or ID, a number being an ID first
--ref="" Branch or tag the issue refers to; empty clears it
--remove-assignee=[] Remove assignees by login; @me for yourself
--remove-blocked-by=[] Lift the dependency on other issues: N, #N, OWNER/REPO#N or a URL
--remove-label=[] Remove labels by name
--remove-milestone[=false] Remove the issue from its milestone
--remove-project=[] Take the issue off the project with this ID or title, a number being an ID first (repeatable)
--set-assignees=[] Replace all assignees; an empty value clears them
--set-labels=[] Replace all labels; an empty value clears them
-t, --title="" New title
OPTIONS INHERITED FROM PARENT COMMANDS
--csv[=""] Output CSV with the specified comma-separated fields, or all fields
--cwd="" Working directory for repository discovery
--debug[=false] Log the method, URL, status, and duration of each HTTP request to stderr
--host="" Gitea instance URL, including any base path
--interactive[=false] Allow prompts with machine output
-q, --jq="" Filter JSON output using a jq expression; implies --json
--json[=""] Output JSON with the specified comma-separated fields, or all fields
--no-input[=false] Disable prompts and implicit editor/browser interactions
--remote="" Git remote used for repository discovery
-R, --repo="" Select a repository as OWNER/REPO or URL
--sudo="" Perform API requests as this user (requires an administrator account)
--user="" Account name on the selected instance
EXAMPLE
$ gt issue edit 12 --title "Crash on start" --add-label bug $ gt issue edit 12 13 --add-assignee @me --milestone v1.0 $ gt issue edit 12 --remove-label wontfix --remove-milestone $ gt issue edit 12 --add-blocked-by 9
SEE ALSO
| Nov 2026 | gitea-cli |