.nh .TH "GT-ISSUE-CREATE" "1" "Nov 2026" "gitea-cli" "gitea-cli Manual" .SH NAME gt-issue-create - Create an issue .SH SYNOPSIS \fBgt issue create [flags]\fP .SH DESCRIPTION Create an issue in a repository. Without flags on a terminal, a form asks for the title and body, then optionally for assignees, a milestone, labels and a due date. .PP Gitea sets labels, a milestone, assignees and a due date only for people who can write to the issues of the repository, and creates the issue without them for others: gt then names the flags or form fields it left out and fails, and warns about left-out labels of a template. Adding the issue to a project needs write access too; when that fails, the issue stays created and the error names the command that adds it later. .PP --template starts from a repository issue template: its title, body, labels and ref. --title, --label, --body, --body-file and --ref replace them; labels the repository lacks are left out. A form (YAML) template starts with an empty body. On a terminal the form opens with the title and body, and a template picked in the form applies its labels too. The title of a template is a prefix to complete, so without the form --template requires --title. --web opens the new-issue page with the whole template applied. .SS JSON FIELDS .EX assignees, author, body, comments, created_at, due_date, id, kind, labels, milestone, number, ref, state, title, updated_at, url .EE .SH OPTIONS \fB-a\fP, \fB--assignee\fP=[] Assign people by their \fBlogin\fR; @me for yourself .PP \fB--attachment\fP=[] \fBFile\fR to attach after creation (repeatable) .PP \fB-b\fP, \fB--body\fP="" Issue body .PP \fB-F\fP, \fB--body-file\fP="" Read body from \fBfile\fR, or - for stdin .PP \fB--deadline\fP="" Due \fBdate\fR: YYYY-MM-DD, RFC3339 or Unix timestamp; only the date counts, as the end of that day in UTC .PP \fB-e\fP, \fB--editor\fP[=false] Compose the issue body in the configured editor .PP \fB-h\fP, \fB--help\fP[=false] help for create .PP \fB-l\fP, \fB--label\fP=[] Add labels by \fBname\fR; prefix repo: or org: to disambiguate .PP \fB-m\fP, \fB--milestone\fP="" Add the issue to a milestone by \fBtitle\fR or ID, a number being an ID first .PP \fB-p\fP, \fB--project\fP=[] Add the issue to the repository's or its owner's project with this ID or \fBtitle\fR, a number being an ID first (repeatable) .PP \fB--ref\fP="" Branch or tag the issue refers to .PP \fB-T\fP, \fB--template\fP="" Start from the repository issue template with this \fBname\fR .PP \fB-t\fP, \fB--title\fP="" Issue title .PP \fB-w\fP, \fB--web\fP[=false] Continue in the browser with the new-issue page .SH OPTIONS INHERITED FROM PARENT COMMANDS \fB--csv\fP[=""] Output CSV with the specified comma-separated \fBfields\fR, or all fields .PP \fB--cwd\fP="" Working \fBdirectory\fR for repository discovery .PP \fB--debug\fP[=false] Log the method, URL, status, and duration of each HTTP request to stderr .PP \fB--host\fP="" Gitea instance \fBURL\fR, including any base path .PP \fB--interactive\fP[=false] Allow prompts with machine output .PP \fB-q\fP, \fB--jq\fP="" Filter JSON output using a jq \fBexpression\fR; implies --json .PP \fB--json\fP[=""] Output JSON with the specified comma-separated \fBfields\fR, or all fields .PP \fB--no-input\fP[=false] Disable prompts and implicit editor/browser interactions .PP \fB--remote\fP="" Git \fBremote\fR used for repository discovery .PP \fB-R\fP, \fB--repo\fP="" Select a repository as \fBOWNER/REPO\fR or URL .PP \fB--sudo\fP="" Perform API requests as this \fBuser\fR (requires an administrator account) .PP \fB--user\fP="" Account \fBname\fR on the selected instance .SH EXAMPLE .EX $ gt issue create $ gt issue create --title "Crash on start" --body "Steps to reproduce…" --label bug --milestone v1.0 $ gt issue create --template "Bug report" .EE .SH SEE ALSO \fBgt-issue(1)\fP