[!CAUTION] Still in early development, will have breaking changes!
A Neovim plugin for managing JIRA tasks with a beautiful UI.
[!NOTE] Disucssion: How do you want to create, edit the jira ticket in this plugin? https://github.com/letieu/jira.nvim/discussions/1
lazy.nvim{
"letieu/jira.nvim",
opts = {
-- Your setup options...
jira = {
limit = 200, -- Global limit of tasks per view (default: 200)
},
},
}
The plugin uses a command-based authentication system. Run the following command to log in:
:Jira auth login
You will be prompted for:
https://your-domain.atlassian.net)basic (default) or patbasic)Credentials are securely stored in your Neovim data directory (:Jira auth info to see the exact path).
Other auth commands:
:Jira auth info: Show current authentication status and file location.:Jira auth logout: Remove stored credentials.require('jira').setup({
-- Jira settings
jira = {
api_version = "3", -- API version: "2" or "3" (default: "3")
limit = 200, -- Global limit of tasks per view (default: 200)
},
active_sprint_query = "project = '%s' AND sprint in openSprints() ORDER BY Rank ASC",
-- Saved JQL queries for the JQL tab
-- Use %s as a placeholder for the project key
queries = {
["Next sprint"] = "project = '%s' AND sprint in futureSprints() ORDER BY Rank ASC",
["Backlog"] = "project = '%s' AND (issuetype IN standardIssueTypes() OR issuetype = Sub-task) AND (sprint IS EMPTY OR sprint NOT IN openSprints()) AND statusCategory != Done ORDER BY Rank ASC",
["My Tasks"] = "assignee = currentUser() AND statusCategory != Done ORDER BY updated DESC",
},
-- Project-specific overrides
-- Still think about this config, maybe not good enough
projects = {
["DEV"] = {
story_point_field = "customfield_10035", -- Custom field ID for story points
custom_fields = { -- Custom field to display in markdown view
{ key = "customfield_10016", label = "Acceptance Criteria" }
},
}
}
})
Run the following command to open the Jira board:
" Authentication
:Jira auth login
:Jira auth info
:Jira auth logout
" Open board
:Jira <PROJECT_KEY>
" Open one task view (info)
:Jira info ISSUE_KEY
" Create new issue
:Jira create [PROJECT_KEY]
" Edit existing issue
:Jira edit ISSUE_KEY
If you don't provide a project key, you will be prompted to enter one.
H — Show help<Tab> — Toggle node (Expand / Collapse)S, J, H — Switch view (Sprint, JQL, Help)q — Close boardr — Refresh current viewi — Create issue / sub-task (under cursor)K — Quick issue details (popup)gd — Read task as infoge — Edit taskgx — Open task in browsergs — Update statusga — Change assigneegw — Add timegb — Checkout / create branchgo — Show child issues (sub-tasks)https://your-domain.atlassian.net/rest/api/3/fieldmake test
Big thanks for gemini CLI free tier.
MIT © Tieu Le
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!