Jiracli is a command line interface for Jira to automate common tasks and perform advanced bulk changes.
Initialization and command chaining:
$ java -jar jiracli.jar -c
jiracli> issues JRA-123 JRA-321 | filter -f key 'JRA-123' | print '${summary} [${status.name}]'
Base URL: https://jira.atlassian.com
New Report: Voted Issues [Closed]
jiracli> exit
Search and issue filtering:
jiracli> search "project=JRA and text~'new report'" | filter -e -f summary '^New report' | print
JRA-2020 - New reports tab + report
JavaScript evaluation:
jiracli> issues JRA-123 | js -l "forEach.call(input, function(issue) { println(issue.fields.issuetype.name); })"
Suggestion
jiracli> js "webService.getIssue('JRA-123')" | parse
JRA-123
jiracli> echo "Hello\nWorld\nHello, world!" | split | filter -j "/^Hello/.test(input)"
Hello
Hello, world!
Issue browsing:
jiracli> issues JRA-123 | browse -n
https://jira.atlassian.com/browse/JRA-123
Jiracli can be started in one of two modes, GUI and console mode. After startup, Jiracli presents a command prompt to execute commands. For information about available commands, see the section Commands.
Almost all commands accept positional arguments, indicated by angle brackets in the help text:
jiracli> echo -h
usage: echo [-h] [--] [<text>...]
Optional arguments for commands are prefixed with a single or double dash.
Usually, both short (-s
) and long forms (--long
) can be used.
A double dash can be used to separate positional from optional arguments,
when necessary (echo -- -h
).
Commands can be chained by using the pipe symbol (cmd1 | cmd2
),
passing the output of the first command to the second command.
Unlike traditional Unix shells, Jiracli passes objects instead
of plain text between commands. This allows chaining of multiple
modifications, for example:
jiracli> issues JRA-123 | set summary 'Hello' | set description 'World' | update
When using Jira Cloud, you need to create an API token for Jiracli by following these steps:
- Go to https://id.atlassian.com/manage/api-tokens, create a new API token
- When Jiracli asks for a password when using a command, paste you API token there
Please enter the credentials for https://jira.atlassian.net
Username: your_jira_account_email@mail.com
Password: [ENTER_YOUR_API_TOKEN_HERE]
You can also provide your credentials using the JIRACLI_USERNAME
and JIRACLI_PASSWORD
environment variables.
This section describes some of the basic commands. To get a list of all commands, type help
.
issues
can be used to load specific issues (issues JRA-1 JRA-7 JRA-123
) or to find issues belonging to the input object (boards | sprints | issues
)read
reads text from a given file (read my-issues.txt | parse -k
)search
executes the given JQL script and returns the issues (search 'project = JRA and issuetype = Epic'
)
links
displays all issues linked to another issue (issues JRA-1 | links
)
sort
changes the order of the input list (search 'summary ~ bug' | sort -f priority
)filter
returns only the matching items of a list (sprints -s 10123 | issues | filter -f issuetype Task
)head
limits the output to the first 10 (by default) items (search 'assignee = currentUser()' | head
)
set
sets the given field to the given value (issues JRA-123 | set summary Test | print
). However, when usingset
,update
must be called to actually send the modifications to the server (issues JRA-123 | set summary Test | update
)labels
can be used to add or remove labels from the given issues. Likeset
, the changes will only be permanent after callingupdate
(search 'summary ~ bug' | labels -a Bug | update
)edit
opens the issues in an external editor, so that multiple issues may be edited at once. Likeset
, the changes will only be permanent after callingupdate
(issues JRA-234 | edit | update
)transition
can be used to change the status of issues. The issue's workflow is used to determine a path from the current status to the target status. If multiple paths are found, the shortest is used (issues JRA-123 | transition -n Closed
)link
creates a relationship between the input and the given issue (issues JRA-101 | link JRA-202 Blocks
)
print
prints formatted output and can display properties (issues JRA-1 | print $issuetype.name
)get
has an optional parameter to display the raw field value (issues JRA-1 | get -r status
)properties
shows all available properties of the given objects (projects -p JRA | properties
)
All requests will be cached in memory during a session, to improve response times and reduce server load.
Use cache -c
to clear all current cache entries.
Jiracli is licensed under the Apache License, Version 2.0