TICGIT DOCS
WORKING ON TICKETS
Working on Tickets
Commands: ti checkout, ti edit, ti comment, ti state, ti close
Checkout
Select a ticket as your "current" ticket. Most commands default to the checked-out ticket when you don't pass --ticket.
CHECKOUT
$ ti checkout a3f
Checked out: a3f29c fix the parser
$ ti show
(shows a3f29c without needing to specify it)
$ ti comment "working on this now"
(comment added to a3f29c)
Clear the checkout:
CLEAR
$ ti checkout --clear
The checked-out ticket is marked with * in ti list output.
Edit title and description
Open the ticket in your editor to change the title and description:
EDIT
$ ti edit a3f
$ ti edit --file updated.txt
The file format is the same as ti new --file: first line is the title, blank line, then description.
Comments
Inline
COMMENT
$ ti comment "found the root cause, it's in the tokenizer"
$ ti comment --ticket a3f "this is specific to ticket a3f"
Editor
EDITOR COMMENT
$ ti comment
Opens $EDITOR for longer comments.
$ ti comment --edit
Force editor even when passing text.
Lifecycle: status and state
Tickets have two lifecycle dimensions:
Status -- broad bucket: open (active work) or closed (done).
State -- specific position in the lifecycle:
| Open states | Closed states |
|---|---|
new | resolved |
assigned | wontfix |
in-progress | duplicate |
blocked | invalid |
review |
Change state
STATE
$ ti state in-progress
$ ti state blocked
$ ti state review
State automatically sets the correct status (e.g., resolved sets status to closed).
Be explicit about both
STATUS:STATE
$ ti state closed:wontfix
$ ti state open:blocked
Close a ticket
ti close is shorthand for ti state resolved:
CLOSE
$ ti close a3f
Closed: a3f29c fix the parser
Common workflow
END-TO-END WORKFLOW
$ ti new --title "fix parser panic on empty input" --tags bug
Created: a3f29c
$ ti checkout a3f
$ ti state assigned
$ ti assign alice@example.com
$ ti state in-progress
$ ti comment "reproducing locally"
$ ti comment "fix is in commit e7a2b1f"
$ ti state review
$ ti close
$ ti sync