All contributors have differents needs, some would prefere the CLI, while others need a WebUI to get a global overview.
This is why git-issue harness the power of existing standard to allow Human First collaboration, priorization, and monitoring
Gitfor storage, auth, sign, automation (via hook), right management (via branch protection), offline first (decentralised collaboration)JSONfor it universally supported syntax that any modern programming language can use nativelyJSON Schemafor it zero-code datamodeling/validation, state management ability, that user can adapt to it usecase
This obnoxius stack allow to build any desired interface and tooling on top
the CLI require JQ for edit and filtering
git issue pull origin
git issue list
git issue create 42 # will use $EDITOR + $JSON_VALIDATOR
git issue show 42
git issue update 42 '.assignee="k@yne.fr"'
git issue push origin
git issue show | jq '.assignee=="k@yne.fr"' # filter exampleThe demo webapp make use of Markdown: for rich description and JQ: (via jq.js) for filtering
current Bubbletea based TUI for issue browsing
State-based fields are JSON Schema validated using the :old suffix before submiting the change.
- The previous value is kept as
field:oldalongside the new value. - schema is validating both values
{
"properties": { "status": { "enum": ["OPEN", "PENDING", "CLOSE"] } },
"required": ["status"],
"if": { "properties": { "status:old": { "type": "string" } }, "required": ["status:old"] },
"then": { "allOf": [
{ "if": { "properties": { "status:old": { "const": "OPEN" } } },
"then": { "properties": { "status": { "enum": ["OPEN", "PENDING"] } } } },
{ "if": { "properties": { "status:old": { "const": "PENDING" } } },
"then": { "properties": { "status": { "enum": ["PENDING", "CLOSE"] } } } },
{ "if": { "properties": { "status:old": { "const": "CLOSE" } } },
"then": { "properties": { "status": { "const": "CLOSE" } } } }
] }
}People did not waited 2025 to store project-related information in git, some of them also use the name git-issue
- aaiyer/bugseverywhere: store issues in filetree
- MichaelMure/git-bug: store issues in /bug/ git object namespace