A jira terminal tool aimed to reduce or eliminate the need for the UI. Jira pal wants to save you a browser tab :)
Wow!
I never knew life without the JIRA UI, this is life changing!
I can't believe it's not butter! I'd totally put it on some toast.
And many other positive things :D
- Install
node
if you do not have it - Install
npm
if applicable - Run
npm install jira-pal --global
- Run commands. Suggested initial command
jira init
- Setting up NPM can be real fun, or not real fun. You may need to use
sudo
for your installs on unix environments - If you run into permission issues, Try This!
- Particularly changing ownership of your npm directory
- Yep, it's still young. If you encounter a bug, please add a github issue
- If things seem to get totally borked, try running
jira logout
,jira evict
and then re runningjira init
.- These are always safe bets to start over.
- Make sure you have an SSH key setup in git :)
jira <command> <options
- You want to run
jira init
- You want to get your jira url and username correct ;)
- You want to make sure you include a list of applicable statuses that you want to see when you run jira me, because they are used for a lot of commands
- For example, with my jira distribution, we have "Started" and "In Review" along with "In Progress" so when
jira init
asks me what statuses to use, I enter:In Progress,Started,In Review
- For example, with my jira distribution, we have "Started" and "In Review" along with "In Progress" so when
- You probably want to sort your stories for me commands by rank or priority.
- So when it asks me, I put
Rank
to get my stories coming back in the order they are in in our backlog
- So when it asks me, I put
- You probably want to set your me command stories to come back only if they are in active sprints, so answer the last question "yes"
One last note about setup, the reason you keep hearing "me" commands is that the general premise of the application is that most commands default to your "me" commands unless otherwise specified, either by search criteria or the nature of the particular command you are using. So you'll have a much better time if you pick statuses for your "me" commands that make sense to you and what you want.
Examples can be found below under "Examples" or by running jira help
. But if you're just getting started, try:
jira init
jira me
jira copy
jira commit
(inside of a directory that is git tracked with changes staged)jira me some search text
where "some search text" is some text in a story you are looking for, assigned to youjira board
orjira board -a
orjira board -p my-project
jira new
(create a story)jira open
jira comment
jira flow
to change story statesjira user lookup bob
There is obviously a lot of enhancements coming, but I think the above commands are good starting points for learning the tool. More below.
jira help
- View list of commands and what they do
jira login
- Store my login information
jira logout
- Clear my login information
jira init
- Set up your settings for your jira distribution and usage preferences
jira lookup
- Raw advanced search functionality.
search
,me
, andcopy
commands all use text contains search. If you want full on search using JQL, uselookup
.
- Raw advanced search functionality.
jira me
- Returns all stories you are assigned to, that fall under your default me statuses from
jira init
- Returns all stories you are assigned to, that fall under your default me statuses from
jira me foobar
- Returns all stories you are assigned to that search returns "foobar" for (i.e. search my stories)
jira commit
- Select issues from
jira me
or a search (like jira me) to include in agit commit
message
- Select issues from
jira new
- Create a new issue (default fields only supported at the moment, more to come)
jira board
- View the sprint board for a selected rapid board.
- You may pass -a to include all users (default is just your username)
- Specify -p XXX to specify a rapid board by id (p for project, maybe not the best name)
jira open
- Select from issues assigned to you and open it in your default web browser.
jira flow
- Transition an issue. This is the "workflow" part of jira. Currently only supports basic transitions. If you have field requirements, this won't work yet.
jira open XXX-123
- Opens the issue in your default web browser.
jira issue XXX-123
- JSON Representation of specified issue. Pass story ID or key, and optionally
-a
to include all fields
- JSON Representation of specified issue. Pass story ID or key, and optionally
jira open -s foobar
- Open an issue in your default web browser from ANY story that search returns for search criteria
foobar
- Open an issue in your default web browser from ANY story that search returns for search criteria
jira comment
- Select from issues assigned to you and then add a comment
- You can @mention a user or [~username]
- Select from issues assigned to you and then add a comment
jira comment XXX-123
- Add comment to the specified issue
jira comment -s foobar
- Add comment to ANY story that search returns for search criteria
foobar
- Add comment to ANY story that search returns for search criteria
jira watch
- Select from issues assigned to you to watch
jira watch XXX-123
- Watch the specified issue
jira watch -s foobar
- Watch ANY story that search returns for search criteria
foobar
- Watch ANY story that search returns for search criteria
jira unwatch
- Select from issues assigned to you to stop watching
jira unwatch XXX-123
- Stop watching the specified issue
jira unwatch -s foobar
- Stop watching ANY story that search returns for search criteria
foobar
- Stop watching ANY story that search returns for search criteria
jira describe
- Describe an issue assigned to you
jira describe XXX-123
- Describe a specific issue
jira describe -s foobar
- Describe ANY story that search returns for search criteria
foobar
- Describe ANY story that search returns for search criteria
jira copy
- Copy a story key (id) from the result set returned by
jira me
- Copy a story key (id) from the result set returned by
jira copy foobar
- Copy a story id from ANY story that search returns for search criteria
foobar
- Copy a story id from ANY story that search returns for search criteria
jira user lookup foobar
- Searches for a users where email, username or display name match
foobar
- Searches for a users where email, username or display name match
jira search
- Same as
jira me
- Same as
jira search foobar
- Search for any story containing foobar in jira
jira list s
orjira list statuses
- List all options for jira statuses, this is useful for changing your default
me
command statuses
- List all options for jira statuses, this is useful for changing your default
jira prime
- Prime caches for various jira information that doesnt change often, like statuses
jira evict
- Clear caches
- As noted in the examples above,
lookup
is the command you want to use to enter raw jql queries. There is an example usingjira help lookup
. - JQL is defined here on jiras website under Advanced Searching
search
,me
andcopy
commands all search using "text contains ____" where the blank is whatever you type- Example:
jira search foobar
is actually doing a JQL search of "text contains foobar"
- Example:
- If you are using jira locally via pulling down the repo, and using the live version via npm you may want to:
- Alias your local jira-pal jira.js file for ease of use
- Default settings are stored in
data/settings.js
- To override settings run
jira init
and follow the prompts- These settings will EXTEND
data/settings.js
meaning only keys present are over written
- These settings will EXTEND
- Jira pal stores settings and crednetials in a folder
.jira-pal
in your home directory- If you would like to change this, set system environment variable
JIRA_PAL_HOME
;
- If you would like to change this, set system environment variable
url
: The url for your jira installation.Required
colors
: If truthy, show terminal colors in output. Defaulttrue
username
: Jira username. This is used for fetching YOUR assigned stories and other various tasks related to you- Find this by navigating to your jira profile. The URL should look like
.../secure/ViewProfile.jspa?name=USERNAME
- Find this by navigating to your jira profile. The URL should look like
defaultCommand
: The default command that runs when you runnode jira.js
. Defaulthelp
. Suggestedme
.orderByDefault
: Order your me searches by a particular field. In many cases "Rank" or "Priority" is desired..useActiveSprintsForMeCommand
: If yes, the jql "sprint in openSprints()" is used for searching, to avoid bringing back all kinds of random stories that match desired criteria.defaultMeStatuses
: The statuses to include in yourme
search. DefaultIn Progress
. This is a CSV. (Ex:Foo Status,Done,My Status
)
- All endpoints are hit over HTTPS using Basic Authentication
- Credentials are stored locally, and the file is not shared remotely
- The alternative solution is to implement oauth, but since it's a terminal app I've chosen the simpler route
- This leaves majority of security up to the user to control, if you share your local credentials file, you may have a bad time
- On non successful auth of any endpoint call, your credentials are removed and required on next use
- All commands are in commands folder
- See
core/commands
for documentation about adding commands and some features that exist
More coming soon