Setup¶
Installation¶
with easy_install or pip:
sudo easy_install jira-cli sudo pip install jira-cli
from source:
git clone http://github.com/alisaifee/jira-cli cd jira-cli python setup.py build sudo python setup.py install
Configuration¶
After installation, a few configuration steps will be needed before you can
start interacting with jira. You can either do this manually by populating
the ~/.jira-cli/config.cfg
file or interactively by issuing the command:
jira-cli configure
Base url for the jira instance: http://my.atlassian.net
username: johndoe
password: *******
would you like to persist the credentials to ~/.jira_cli/config.cfg?
[WARNING: this will store credentials in plaintext [y/n]:y
Sample ~/.jira-cli/config.cfg
file:
[jira]
base_url = http://my.atlassian.net
username = johndoe
protocol = rest # either rest or soap
For subsequent invocations, you can always override the configuration values by passing in the appropriate value on the command line. For example
the user:
jira-cli view TP-01 -u janedoe -p hersekret
the jira installation:
jira-cli view TP-01 --jira-url=http://her.atlassian.net
the protocol:
jira-cli view TP-01 --protocol=soap
You can additionally add aliases for frequently used sub commands:
[alias]
myissues = view --search-jql='assignee=me'
...
And then use as:
jira-cli myissues
jira-cli myissues --oneline
...
Usage¶
Interacting with issues¶
create an issue with only a title in project TP with default priority and type Bug:
ali@home ~ $ jira-cli new --type=bug --priority=Major --project TP 'Test Bug'
link : http://jira.yourdomain.com/browse/TP-24
assignee :
summary : Test Bug
issue : TP-24
reporter : ali
create an issue with priority Major and a description:
ali@home ~ $ jira-cli new --type Bug "Test Bug" --priority=Major --project TP --description='the description'
link : http://jira.yourdomain.com/browse/TP-25
assignee :
summary : Test Bug
issue : TP-25
reporter : ali
list the issue TP-25:
ali@home ~ $ jira-cli view TP-25
link : http://jira.yourdomain.com/browse/TP-25
assignee :
summary : Test Bug
issue : TP-25
reporter : ali
list the issues TP-20 & TP-21:
ali@home ~ $ jira-cli view TP-20 TP-21
link : http://jira.yourdomain.com/browse/TP-20
assignee : ali
summary : test
issue : TP-20
reporter : ali
link : http://jira.yourdomain.com/browse/TP-21
assignee :
summary : Test Bug
issue : TP-21
reporter : ali
list the issues in short form:
ali@home ~ $ jira-cli view TP-20 TP-21 TP-22 --oneline
TP-20 test < http://jira.yourdomain.com/browse/TP-20 >
TP-21 Test Bug < http://jira.yourdomain.com/browse/TP-21 >
TP-22 Test Bug < http://jira.yourdomain.com/browse/TP-22 >
add a comment to an existing issue:
ali@home ~ $ jira-cli update TP-20 --comment # opens up the editor
this is a new comment added to TP-20
Update the assignee of an issue:
ali@home ~ $ jira-cli update TP-20 --assign ali
ali assigned to TP-20
Add a label to an issue:
ali@home ~ $ jira-cli update TP-20 --label moo
TP-20 labelled with moo
Add an affected version to the issue:
ali@home ~ $ jira-cli update TP-20 --affects-version=1.0
Added affected version(s) 1.0 to TP-20
Add a fix version to the issue:
ali@home ~ $ jira-cli update TP-20 --fix-version=1.0
Added fixed version(s) 1.0 to TP-20
Remove versions from issues:
ali@home ~ $ jira-cli update TP-20 --remove-fix-version=1.0 --remove-affects-version=1.0
Removed fixed version(s) 1.0 from TP-20
Removed affected version(s) 1.0 from TP-20
transition the issue to a new state:
ali@home ~ $ jira-cli update TP-20 --transition='Done'
TP-20 transitioned to "Done"
transition the issue and set a resolution:
ali@home ~ $ jira-cli update TP-20 --transition='Done' --resolution='Fixed'
TP-20 transitioned to "Done"
provide your own formatting:
ali@home ~ $ jira-cli view TP-20 --format="%reporter, %summary, %status"
free text search for issues:
ali@home ~ $ jira-cli view --search='some random words'
jql search for issues:
ali@home ~ $ jira-cli view --search-jql 'reporter=ali and type=bug'
list only the comments for an issue:
ali@home ~ $ jira-cli view TP-20 --comments-only
Thu Nov 10 08:42:55 UTC 2011 ali : this is a new comment
Fri Dec 02 00:19:40 UTC 2011 ali : another comment
Sat Mar 10 11:08:34 UTC 2012 ali : test comment
Sat Mar 10 11:08:51 UTC 2012 ali : another test comment
Listing types¶
Often you have to use certain jira specific values for specifying things such as
issue type, priority, status, resolution etc. The sub-command list
can be
used to list the acceptable values.
available projects:
jira-cli list projects
available filters:
jira-cli list filters
acceptable issue types:
jira-cli list issue_types
acceptable sub task types:
jira-cli list subtask_types
issue priorities:
jira-cli list priorities
issue statuses:
jira-cli list statuses
issue resolutions:
jira-cli list resolutions
project components:
jira-cli list components --project=MYPROJ
Possible transitions for an issue:
jira-cli list transitions --issue=TP-20
your own configured aliases:
jira-cli list aliases