IW-650: issue create --json (id, number, url) #663
No reviewers
Labels
No labels
agent-ready
bug
contract
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
needs-input
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/iw-cli!663
Loading…
Reference in a new issue
No description provided.
Delete branch "IW-650"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
iw issue create --jsonprints one JSON object{"id", "number", "url"}for the new issue and nothing else on stdout, so a program can record the issue and read it back withiw issue <id>. Exit codes do not change; without--jsonthe human output stays as it was.Changes
core/model/IssueReference.scala— pureIssueReference(id, number, url)andIssueReference.forTracker(...). Forges:idisPREFIX-n(bare number without a team prefix). Linear/YouTrack:idis the readable key,numberis its numeric suffix.core/adapters/LinearClient.scala— the create mutation selectsidentifierand returns it in place of the internal UUID, so a Linear id can be read back. Human output for Linear now shows#IWLE-123.core/commands/Issue.scala—--jsonswitch, help example, and the exit-1 doc for "created but reference not built" (stderr names the created URL; do not retry).Testing
IssueReferenceTest,IssueHarnessTest(--jsonper tracker, failure modes, flag position, help),LinearClientCreateIssueTest,LinearClientMockTest.test/issue-create.bats.project-management/issues/IW-650/review-packet.md.Follow-ups filed: #661 (live Linear call in a unit test), #662 (rename
CreatedIssue.idtokey).Release notes
Příkaz pro založení nového úkolu v systému pro správu úkolů nyní umí vrátit výsledek ve strojově čitelné podobě. Nástroje a automatizace, které úkoly zakládají samy, si tak hned po založení spolehlivě zjistí, jaký úkol vznikl a kde ho najdou, a nemusejí přitom číst text určený lidem.
Stačí k příkazu přidat přepínač pro výstup ve formátu JSON. Příkaz pak po úspěšném založení vypíše jediný záznam se třemi údaji: označením úkolu, jeho číslem a odkazem na něj. Označení má stejnou podobu, jakou používají ostatní příkazy nástroje, například IW-650, takže ho lze rovnou použít k pozdějšímu načtení úkolu a ke sledování, zda je práce hotová. Pokud se úkol založit nepodaří, chyba se vypíše stejně jako dosud a do výsledku se nedostane nic, co by automatizace mohla mylně považovat za úspěch. Ve vzácném případě, kdy úkol vznikne, ale jeho označení se nepodaří sestavit, nástroj ve zprávě uvede odkaz na už založený úkol, aby se úkol nezakládal podruhé.
Pro uživatele systému Linear přináší změna i opravu: po založení úkolu se nyní zobrazí jeho běžné čitelné označení (například IWLE-123) místo interního identifikátoru, se kterým nebylo možné úkol znovu otevřít.
Bez nového přepínače se příkaz chová stejně jako dříve a vypisuje stejné hlášení pro lidi. Návratové kódy příkazu se nemění.
🤖 Generated with Claude Code
Closes #650
- IssueReference model: {id, number, url} built per tracker from the created issue's key - Linear create returns the readable identifier instead of the internal UUID - issue create --json prints one JSON object; a created-but-unreadable reference names the URL and says not to retry - Harness, unit and BATS tests; false-green missing-url test fixed in review