Skip to content

Issues

Creating

bash
ngit issue create --subject "Crash on empty relay list" --body "Details as markdown"
ngit issue create --subject "Add retry" --body "..." --label enhancement --label help-wanted

--label repeats. For a body longer than a line or two, read it from a file. Unlike git push options, ngit's --body takes ordinary multiline arguments:

bash
ngit issue create --subject "Design notes" --body "$(cat notes.md)"

Reading

bash
ngit issue list                       # open issues
ngit issue list --status closed
ngit issue list --label bug
ngit issue view <ID>
ngit issue view <ID> --comments
ngit issue view <ID> --history

<ID> accepts an nevent1... string, a full hex ID, or a unique hex prefix with an optional #, such as ngit issue view '#deadbeef'. Quote the # form so your shell doesn't treat it as a comment.

--history shows the original title and body followed by every authorised subject or cover-note edit, including the editor's role. The list form is also available when you supply one issue: ngit issue list <ID> --history.

Commenting

bash
ngit issue comment <ID> --body "Reproduced on v2.1"
ngit issue comment <ID> --body "Thanks!" --reply-to <comment-ID>

Comments thread. --reply-to takes another comment's ID.

Referencing other things

Use a nostr: URI, never a raw hex ID pasted into prose:

bash
ngit issue comment <ID> --body "Same root cause as nostr:nevent1abc…"

ngit converts those into proper event tags, so clients can link them. The id values that ngit issue list reports are already in the right form. Prefix one with nostr:.

Closing

There are two different endings, and the distinction is worth keeping:

bash
ngit issue resolved <ID> --reason "fixed in abc123"     # it got fixed
ngit issue close <ID> --reason "wontfix"                # it didn't
ngit issue reopen <ID> --reason "regression in v2.3"

Auto-resolve from commits

New commits pushed to the declared default branch can close issues automatically when their messages use common forms of close, fix, resolve, or implement, followed by a unique hex ID or a nostr: URI:

Fixes #deadbeef
Resolves nostr:nevent1abc…

ngit publishes the status only when the pusher is the issue author or a confirmed repository member.

Editing

bash
ngit issue label <ID> --label bug --label enhancement
ngit issue set-subject <ID> --subject "New title"
ngit issue set-cover-note <ID> --body "$(cat updated.md)"

A cover note replaces the description shown for the issue.

Next

Git collaboration, without the platform.