Skip to content

Metadata and Custom Fields

KoukeNeko edited this page Sep 9, 2026 · 4 revisions

Metadata and Custom Fields

English · 繁體中文

Workflow metadata

taiga metadata list issue-status
taiga metadata view issue-status Review
taiga metadata create issue-status --name Review --color '#4A90E2'
taiga metadata edit issue-status Review --closed=true
taiga metadata delete issue-status Review --move-to New --yes

Eight kinds are supported:

Kind Meaning
epic-status Epic statuses
story-status User story statuses
task-status Task statuses
issue-status Issue statuses
points Story point values
priority Issue priorities
severity Issue severities
issue-type Issue types

Each kind also accepts common singular, plural, and alias spellings such as issue-statuses, us-status, and types.

Deleting requires a --move-to of the same kind. Taiga moves the associated work items and the project default to the target before removing the metadata. Afterwards the CLI reads the record back to confirm it is really gone, and reports ambiguous_commit if it is not.

Custom fields

taiga custom-field create issue --name Environment --type dropdown --option staging --option production
taiga custom-field list issue
taiga custom-field set issue 42 --value Environment='"staging"' --value Attempts=3
taiga custom-field values issue 42
taiga custom-field set issue 42 --unset Environment
taiga custom-field delete issue Environment --yes

Custom field definitions apply to epic, story, task, and issue.

Value types

The right-hand side of --value is parsed as JSON first:

--value Attempts=3                 # number
--value Enabled=true               # boolean
--value Notes=null                 # null
--value Environment='"staging"'    # string (JSON quotes)
--value Environment=staging        # not valid JSON, treated as a plain string

How updates are applied

Before setting a value, the CLI GETs all current custom values and merges locally, then PATCHes using the custom-values version under optimistic concurrency control. Other fields' values are therefore never clobbered.

When --unset clears the last remaining value, the CLI sends the null that Taiga accepts, avoiding an empty object that the server-side validator would reject as blank.

Due-date presets

taiga due-date list story
taiga due-date create story --name "One week" --days 7 --color '#4A90E2'
taiga due-date edit story "One week" --days 5
taiga due-date delete story "One week" --yes

Swimlanes

taiga swimlane list
taiga swimlane create --name Backend --order 2
taiga swimlane wip Backend "In progress" --limit 3
taiga swimlane delete Backend --move-to Default --yes

swimlane wip sets the WIP limit for one status column within that swimlane.

Tags

taiga tag list
taiga tag create backend --color '#4A90E2'
taiga tag edit backend --name platform
taiga tag mix platform --from api --from database
taiga tag delete platform --yes

tag mix merges source tags into the target: every work item using a source tag switches to the target tag, and the source tags disappear.

Clone this wiki locally