A new version of jic has been released: v15.07.1
https://github.com/ototo/jic
It's a bugfix release - there was a regression for the case when
jira-python module is not installed.
Please try it out and report bugs here:
https://bugs.linaro.org/describecomponents.cgi?product=jic
It is not a production quality software yet - more like an enthusiast
version that might sneeze here and there. The work is continuing so
expect improving of the reliability and user experience, as well as
adding more features.
OAuth bug is still not resolved for Ubuntu, but support for keyrings
is fully sufficient for seamless use with no compromised security.
Please take a look at this bug if you have problems performing OAuth
dance: https://bugs.linaro.org/show_bug.cgi?id=813
Here is the change log for the release:
commit e14f5779502b6caea42140fb32d4d7eaee3caee7
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Thu Feb 12 11:13:37 2015 +0800
New release: v15.07.1
commit 130f50cf089811fb7ddf2fbbb5e1bc48b84627c9
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Thu Feb 12 11:05:56 2015 +0800
documentation: rename INSTALL to INSTALL.md
As INSTALL file got renamed to INSTALL.md, error messages referring to
that file should also be updated.
commit bc68fbe656b4016940c0d195185301867abe55c4
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Thu Feb 12 10:42:44 2015 +0800
python imports: report missing packages properly
The case of missing jira python module jic should properly report the issue.
Previous attempt to improve that brought a regressing in. This patch is fixing
the regression.
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
A new version of jic has been released: v15.06.1
https://github.com/ototo/jic
Please try it out and report bugs here:
https://bugs.linaro.org/describecomponents.cgi?product=jic
It is not a production quality software yet - more like an enthusiast
version that might sneeze here and there. The work is continuing so
expect improving of the reliability and user experience, as well as
adding more features.
OAuth bug is still not resolved for Ubuntu, but support for keyrings
is fully sufficient for seamless use with no compromised security.
Please take a look at this bug if you have problems performing OAuth
dance: https://bugs.linaro.org/show_bug.cgi?id=813
Here is the change log for the release:
commit bc2d31fbc643c22beafc3f0ae18c074964fd2bbf
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Sun Feb 8 21:56:52 2015 +0800
New release: v15.06.1
commit 93a26c9486da39f6cb2cd05c97167d0a8e6c28a0
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Feb 6 23:31:49 2015 +0300
usability: improve diagnostic messages for authentication
Show cleanly which authentication method is used and how credentials are
retrieved.
commit 3b68553175e09586e6e45657c036db1c58ecb778
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Feb 6 23:29:11 2015 +0300
keyring support: store password only when it is missing
Before this patch jic was storing password into the default keyring
(when keyring module is present and OAuth is not used) every time jic
was run. With this patch that is done only when the password is not yet
stored in the default keyring.
commit 85e066c0031cd888202c1cad9ebed302049b11bb
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Feb 6 23:20:25 2015 +0300
Make OAuth optional
If one or more of the oauth secret, key or certificate is missing or
oauth2 module is not available jic will fall back to using keyring to
retrieve the password (if keyring module is available) or further to
querying password from the user (unless it's stored in plain text in
config, which is the last thing one would want to do).
commit 8509d5f93ebdd8fb329e8ae87012de56e4da665c
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Feb 6 23:16:32 2015 +0300
next branch: version update
commit 2cd0a77879b39671b22a4c02d3174d52ef72a198
Merge: 084c15b 7de1bcf
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Feb 6 17:24:59 2015 +0300
Merge INSTALL typo fix from mturquette.
commit 084c15b795a7c5e54cadfb2e3d4bd4a420ae9626
Author: Mike Turquette <mturquette(a)linaro.org>
Date: Thu Jan 29 17:06:29 2015 -0800
INSTALL.md: ordered lists can be any number
Markdown properly numbers ordered lists. The main benefit here is that
inserting an element into the ordered list does not require one to
renumber all subsequent elements as is done in issue #15.
To reinforce this habit, renumber every element in the ordered list to
"1", so future edits will resist the urge to unnecessarily renumber
them.
Signed-off-by: Mike Turquette <mturquette(a)linaro.org>
commit 8e967230576c149bb58007c9fdc3e96a5513880f
Author: Mike Turquette <mturquette(a)linaro.org>
Date: Thu Jan 29 17:05:58 2015 -0800
INSTALL: rename as a Markdown-formatted document
Signed-off-by: Mike Turquette <mturquette(a)linaro.org>
commit 7de1bcfe380e207d0573db8d2a10ac730f3c7734
Author: Michael Turquette <mturquette(a)deferred.io>
Date: Mon Jan 26 09:10:16 2015 -0800
INSTALL: fix requests-oauthlib typo
Signed-off-by: Michael Turquette <mturquette(a)deferred.io>
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
Thanks, Mike.
I'm also CCing jic-dev ML.
On 26.01.15 15:02 -0800, Mike Turquette wrote:
> Hi all,
>
> I run Mac OS X on my laptop and wanted to use jic with it. I posted
> the Exact Steps on my blog:
>
> http://deferred.io/posts/jic-on-mac-os-x/
>
> Hope someone finds it useful.
>
> Regards,
> Mike
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Core Development Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
A new version of jic has been released: v15.01.1
https://github.com/ototo/jic
Please try it out and report bugs here:
https://bugs.linaro.org/describecomponents.cgi?product=jic
It is not a production quality software yet - more like an enthusiast
version that might sneeze here and there. It's not a weapon of mass
destruction (yet?), but it's safer to try it out on our development JIRA
instance (https://dev-cards.linaro.org). I will continue working
together with Amro Hassaan and community on improving the reliability
and user experience, as well as adding more features.
In order to workaround the OAuth issue this version facilitates keyring
support (thanks to Tony - the first community contributor).
Please take a look at this bug if you have problems performing OAuth
dance: https://bugs.linaro.org/show_bug.cgi?id=813
Here is the change log for the release:
commit 67be58c6a000de7f4a015063be818d38243f72f9
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Sun Jan 4 23:32:29 2015 +0200
New release: v15.01.1
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 8c5a964f06f29bd54a7600e270c1d49e6046a7bc
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Sun Jan 4 23:03:16 2015 +0200
INSTALL: keyring support
Steps needed to enable keyring support in jic.
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 775b023c1d72f2c58044a1aa4f09417f8110ae5d
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Wed Dec 31 19:32:06 2014 +0200
porcelain: jls: only list active issues
As proposed by Kevin Hilman, plumbing mode `jls` command should only
list issues that are active (neither Resolved nor Closed) as that
command is intended to show work items to work on.
If full list if the reported/assigned issues is needed, it can be done
using the following plumbing command (either directly or by creating a
porcelain command):
# jic issues list -f 'assignee=$me' -f 'reporter=$me'
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 9108396e0322e6e0b11875689f7bab115ee06faa
Author: Mike Turquette <mturquette(a)linaro.org>
Date: Wed Dec 3 17:26:24 2014 -0800
jic: help: fix porcelain/plumbing typo
Signed-off-by: Mike Turquette <mturquette(a)linaro.org>
commit 440aea6ae6c3d158d78b880f7a9f80cae23fb78a
Author: Mike Turquette <mturquette(a)linaro.org>
Date: Wed Dec 3 17:20:14 2014 -0800
INSTALL: add requests-oauthlib install instructions
Installation of jira-python would fail without this dependency installed
first. Error log as follows:
[...log removed for brevity...]
Signed-off-by: Mike Turquette <mturquette(a)linaro.org>
commit 04f788898046a5c0fff1ea40283222ea19ccde1d
Author: Tony Cebzanov <tonycpsu(a)gmail.com>
Date: Tue Dec 2 14:46:16 2014 -0500
Add ability to store/retrieve password to/from keyring (OSX Keychain, etc.) using the 'keyring' module.
commit ca41f619a51cd16c58073674edbe5fc9514778ba
Author: Tony Cebzanov <tonycpsu(a)gmail.com>
Date: Tue Dec 2 14:46:45 2014 -0500
Whitespace cleanup.
commit d2de4399039e9af4044c37d730581a9fc98eacbc
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Wed Nov 19 22:55:08 2014 +0200
Version update: 'next' branch
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 837b17ec2805ee9f1164e9313b20b95fa2822202
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Wed Nov 19 22:53:03 2014 +0200
Feature: use JQL to define the list of issues to process
It is possible now to provide a JQL statement to jic:
- as an argument to the switch - using '-q';
- as a single line of text in stdin - using '-Q'.
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 615107f1e7075912181873ce8285dda33fe184ac
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Tue Nov 18 18:29:36 2014 +0200
Bugfix: filter with a list of values causes jic to crash
If a list based filter like the following example is used, jic is
crashing:
$ jic issues list -f 'status[,Open,Reopened,In Progress]'
This patch fixes the bug.
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
I'm glad to announce a new version of jic which has just been pushed to
github:
https://github.com/ototo/jic
Please try it out and report bugs here:
https://bugs.linaro.org/describecomponents.cgi?product=jic
It is not a production quality product yet - more like an enthusiast
version that might sneeze here and there. It's not a weapon of mass
destruction (yet?), but it's safer to try it out on our development JIRA
instance (https://dev-cards.linaro.org). I will continue working
together with Amro Hassaan on improving the reliability and user
experience, as well as adding more features.
Please take a look at this bug if you have problems performing OAuth
dance:
https://bugs.linaro.org/show_bug.cgi?id=813
Here is the change log:
$ git log v14.43.1..
commit 0e012fb47fbfbcf5f83aad303a5bbddbec93e255
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Nov 7 13:40:09 2014 +0200
New version: v14.45.1
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 2252151d09e52a07ae1f5b3f7c9f18d020a1e74c
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Nov 7 13:38:43 2014 +0200
Documentation: updated `man jic` (WIP)
Contains more of the documentation now. Still not complete.
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
commit 0e500b9a57225f19543f8beedd498399fdf2042f
Author: Serge Broslavsky <serge.broslavsky(a)linaro.org>
Date: Fri Nov 7 13:34:12 2014 +0200
Feature: issue creation
This is a first version of issue creation functionality, which is:
- adding plumbing `issues create` command;
- adding porcelain `jcr (blueprint|subtask)` command;
- allows creating issues of different types;
- also requests required fields even if those are not listed by
the current template;
- can link Sub-tasks to parents (parent's issue key should be provided
in required "Parent" field);
- only supports editor-based issue creation for now (with -e switch).
Signed-off-by: Serge Broslavsky <serge.broslavsky(a)linaro.org>
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
Hi Serge,
are you still planning to do the jic workshop today at 17:30 UTC?
Since you will not be in Cambridge, we should do it remotely
(HO/Bluejeans), which means we can open the session to the people from
this list or even other employees.
Let me know if you still want to do it and who can join. People from
Cambridge office will attend
Saludos
--
Agustin Benito Bethencourt
Director of Core Development at Linaro
@toscalix
I'm glad that I can say that I've managed to release a new version of
jic - with issue editing support. Please check it's man page to see the
details. I'm continuing working on it and issue creatin featue (which I
could not squeeze into the time I had) is to follow soon.
It's in master branch.
It still has bugs and deficiencies, but hey, this is a good start!
Linaro specific:
Please note, in order to use OAuth to talk to cards.linaro.org you need
a cert to be saved as a file on your system:
https://pastebin.linaro.org/view/682fb7d8
PS. Now I need a bit of vacation...
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
Good localtime,
This email is to update on the state of the upcoming version of jic and
the timeline for its release.
I've tried to squeeze it into the time I had before my vacation (which
started today and will last until 26 Aug inclusively), but due to the
size of the change set I was unable to finish it yet.
My goal is to have fully functioning new jic with the following
functionality on-board by the LCU14 (which starts on 15 Sep 2014):
- porcelain mode (similar to git's one) with the following commands:
jadd # add issue comments
jcr
blueprint # create a new blueprint
subtask # create a new sub-task
jdel # delete issue comments
jed # edit an existing issue
jedc # edit issue comments
jln
depends # add dependency link
implements # add implementation link
jls
assigned
reported # list issues reported by you
jrep
myweek # show user's activity for the last week
jsh
all # show all information for the issue
comments # show issue comments
history # show issue change history
links # show issue links
worklog # show the time logged for the issue
jtr
resolve # resolve an issue
start # start working on an issue
jul
depends # remove dependency link
implements # remove implementation link
jwl # log time spent on an issue
- plumbing mode with the commands supporting the functionality above
plus what is needed to configure jic, manage porcelain mode
commands, etc.
- default templates for all the output with an option to add your
own templates in the configuration file to override the default
ones.
- support for offline mode (part of the new framework anyway).
- support for multiple servers (needed for development and is a part
of the new framework).
- flexible configuration.
- proper man pages.
- tests for the code (partial coverage).
- support for CL completion in bash (if time permits).
So, during the next couple of days (as time permits - I'm traveling
this week) I'll be pushing bits of the functionality into the 'next'
branch at github[1] as I merge them.
When I'm back from vacation I'm planning to do small releases every week
until connect.
After connect I'd like to switch to bazaar mode and work on jic together
with all of you. :)
Links:
[1] https://github.com/ototo/jic
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
Good localtime,
I'm glad to present you an excerpt from the jic CLI specification
document I'm working on, which covers a new high level `frontend` mode,
which supplements the previously presented `plumbing` mode.
It was created based on the feedback I've received during KWG/PMWG
sprint in Le Mans two weeks ago.
I would like to get some feedback from you to confirm that this mode
covers all the essential most frequent operations engineers will be
using for their daily operations in the way that is matching your
expectations.
I'll be waiting for your feedback till 28 July 2014 when I'll continue
working on its implementation for the next version of jic.
-------- 8< -------- 8< -------- 8< -------- 8< --------
2. CLI STRUCTURE
To allow both - having a concise and easy to learn interface for the
most frequent operations and a powerful but requiring more time to learn
one, jic has modal command line interface with the following two modes:
1. Front end - the concise but limited one
2. Plumbing - the powerful but verbose one
It is possible to choose which one of the above will be the default one
and switching between the two is done using the following switches:
--frontend
--plumbing
Mode setting switch should be on the first place after jic's name as it
defines how all the following switches and arguments are going to be
interpreted.
Examples:
# let's assume for these examples that the default mode is
# configured to be frontend.
# list issues reported by the user
$ jic list reported
# list issues assigned to the user using a symlinked jic
$ jls assigned
# add new command 'my week'
$ jic --plumbing command add <<EOF
my week,wee,we,wk,w
plumbing:report generate MyWeekly -1w
EOF
To set the default mode the following option should be changed:
Name: cli.mode
Values: `frontend`, `plumbing`
Default value: `plumbing`
That can be done using the following commands:
# set `frontend` to be the default mode
$ jic --plumbing configuration set cli.mode frontend
# set `plumbing` to be the default mode
$ jic --plumbing configuration set cli.mode plumbing
Alternative and more convenient way of using frontend commands is using
symbolic links pointing to jic with their names matching the frontend
commands defined. In this case the mode is set to be `frontend`
regardless the default mode in configuration. Adding an explicit
`--plumbing` switch in this case will however result in `plumbing` mode
being selected.
After setting default mode to `plumbing` and adding proper symlinks for
`frontend` mode commands, it is possible to use both modes with no need
to explicitly specify each mode:
# access `plumbing` mode commands
$ jic issue tree PMWG-100
# access `frontend` mode commands
$ jadd PMWG-101 -m 'This comment is added using frontend mode!'
2.1. Frontend mode CLI structure
This mode is fully defined by the commands defined in the configuration
file. To help users being productive without a need to spend lots of
time reading through the plumbing commands' documentation and building
their own frontend mode CLI, jic comes with a set of pre-configured
commands that are listed below.
The structure of frontend mode command line:
$ jic word [word...] [<switches>] args
Preconfigured commands:
All the pre-configured `frontend` mode commands are listed below:
jadd
add a comment
jedc
edit a comment
jdel
delete a comment
jsh [comments,history,links,worklog,all]
show JIRA issues
jls [assigned,reported]
list JIRA issues
jcr (sub-task,blueprint)
create JIRA issues
jed
edit JIRA issues
jtr
transition JIRA issues
jwt
log time spent on an issue
jul [depends,implements'
unlink issues
Those are described in more details in the following sub-chapters.
2.1.1. Add comments
$ jadd [<issue_key> [<issue_key>...]] [-e] [-k] [-m <message>]
Adds comments, one per issue specified, using the text
provided:
- by `-m` switch is present;
- using an editor (if `-e` is specified);
- from stdin if no parameters are specified.
If `-k` switch is specified, issue keys for the issues to be
processed are also read using the same method - all the
lines of text till the first empty line will be parsed as a
space or comma separated list of issue keys.
Examples:
# add a comment using an editor
$ jadd CARD-100 -e
# add a comment for two cards using the message provided
$ jadd CARD-100 CARD-101 -m 'This is\na multiline message'
# add a comment using stdin
$ echo 'This is\na multiline comment' | jadd CARD-100
# add a comment into a set of cards
$ jadd -k <<EOF
CARD-100, CARD-101
CARD-102
This is a folded comment that will be added for the issues
that are listed above.
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
# define command aliases (the first one being the name of the
# command)
jadd,add,ad,a
# list allowed options
e,k,m
# what does this command mean
# possible types are:
# plumbing for mapping to a plumbing command
# frontend for mapping to a frontend command
# python for defining a function that implements the
# command
plumbing:comments add $keys $args
EOF
which is an equivalent of:
$ jic --plumbing command add jadd,add,ad,a e,k,m \
'plumbing:comments add $keys $args'
2.1.2. Edit comments
$ jedc [<issue_key:cmt_id[,<cmt_id>...>...]] [-e] [-k] [-m <message>]
Edits comments using the text provided:
- by `-m` switch is present;
- using an editor (if `-e` is specified);
- from stdin if no parameters are specified.
If `-k` switch is specified, issue keys and comment ids for
the comments to be processed are also read using the same
method - all the lines of text till the first empty line
will be parsed as a space or comma separated list of issue
keys and comment ids.
Examples:
# edit a comment using an editor
$ jedc CARD-100:2345 -e
# edit two comments for two cards using the message provided
$ jedc CARD-100:2345 CARD-101:2445 -m 'This is a message'
# edit a comment using stdin
$ echo 'This is\na multiline comment' | jedc CARD-100:2345
# edit a set of comments for a few cards
$ jadd -k <<EOF
CARD-100:2345,2346 CARD-101:3425
CARD-102:3446
This is the text that will replace the existing comments
whose ids are listed above.
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jedc,editc,edic,edc,ec
e,k,m
plumbing:comments edit $keys $args
EOF
2.1.3. Delete comments
$ jdel [<issue_key:cmt_id[,<cmt_id>...>...]] [-e] [-k]
Delete comments whose ids are specified using:
- using an editor (if `-e` is specified);
- from stdin if no parameters are specified.
If `-k` switch is specified, issue keys and comment ids for
the comments to be deleted are read from stdin - all the
lines of text till the first empty line will be parsed as a
space or comma separated list of issue keys and comment ids.
Examples:
# delete a comment using an editor to edit the list of
# issues and comment ids
$ jdel CARD-100:2345 -e
# delete two comments for two cards using the message provided
$ jdel CARD-100:2345 CARD-101:2346
# edit a set of comments for a few cards
$ jdel -k <<EOF
CARD-100:2345,2346 CARD-101:3425
CARD-102:3446
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jdel,delete,delet,dele,del,de,d
e,k
plumbing:comments delete $keys $args
EOF
2.1.4. Show issue (essential)
$ jsh [<issue_key> [<issue_key>...]] [-k]
Show essential issue information (fields).
Examples:
# show an issue
$ jsh CARD-100
# show issues whose keys are provided using stdin
$ echo 'CARD-100 CARD-101' | jsh
# show issues whose keys are provided using stdin and edited
# using an editor
$ jsh -e <<EOF
CARD-100 CARD-101
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jsh,show,sho,sh,s
k
plumbing:issue show -p fields $keys $args
EOF
2.1.5. Show issue comments
$ jsh comments [<issue_key> [<issue_key>...]] [-k]
Show issue comments.
Examples:
# show issue's comments
$ jsh comments CARD-100
# show comments for the issues whose keys are provided using
# stdin
$ echo 'CARD-100 CARD-101' | jsh c
# show comments for the issues whose keys are provided using
# stdin and edited using an editor
$ jsh comm -e <<EOF
CARD-100 CARD-101
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jsh,show,sho,sh,s comments,comment,commen,comme,comm,com,cmts,cmt,co,c
k
plumbing:issues show -p comments $keys $args
EOF
2.1.6. Show issue (history)
$ jsh history [<issue_key> [<issue_key>...]] [-k]
Show issue change history.
Examples:
# show issue's change history
$ jsh history CARD-100
# show change history for the issues whose keys are provided
# using stdin
$ echo 'CARD-100 CARD-101' | jsh h
# show change history for the issues whose keys are provided
# using stdin and edited using an editor
$ jshh -e <<EOF
CARD-100 CARD-101
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jsh,show,sho,sh,s history,histor,histo,hist,his,hi,h
k
plumbing:issues show -p history $keys $args
EOF
2.1.7. Show issue (links)
$ jsh links [<issue_key> [<issue_key>...]] [-k]
Show issue links.
Examples:
# show issue's links
$ jsh links CARD-100
# show links for the issues whose keys are provided
# using stdin
$ echo 'CARD-100 CARD-101' | jsh l
# show links for the issues whose keys are provided using
# stdin and edited using an editor
$ jsh l -e <<EOF
CARD-100 CARD-101
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jsh,show,sho,sh,s links,link,lin,lnk,li,ln,l
k
plumbing:issues show -p links $keys $args
EOF
2.1.8. Show issue (worklog)
$ jsh worklog [<issue_key> [<issue_key>...]] [-k]
Show essential issue information (fields).
Examples:
# show issue's worklog
$ jsh worklog CARD-100
# show worklogs for the issues whose keys are provided
# using stdin
$ echo 'CARD-100 CARD-101' | jsh w
# show worklogs for the issues whose keys are provided using
# stdin and edited using an editor
$ jsh w -e <<EOF
CARD-100 CARD-101
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jsh,show,sho,sh,s worklog,worklo,workl,work,wor,wo,w
k
plumbing:issues show -p worklog $keys $args
EOF
2.1.9. Show issue (all information)
$ jsh all [<issue_key> [<issue_key>...]] [-k]
Show essential issue information (fields).
Examples:
# show all issue's information
$ jsh all CARD-100
# show all information for the issues whose keys are provided
# using stdin
$ echo 'CARD-100 CARD-101' | jsh a
# show all information for the issues whose keys are
# provided using stdin and edited using an editor
$ jsh a -e <<EOF
CARD-100 CARD-101
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jsh,show,sho,sh,s all,al,a
k
plumbing:issues show -p all $keys $args
EOF
2.1.10. List my assigned issues
$ jls assigned
Show list of the issues assigned to the user.
Examples:
# list all assigned issues
$ jls assigned
# list all assigned issues using shortened form
$ jls a
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jls,list,lis,li,ls,l assigned,assigne,assign,assig,assi,ass,as,a
k
plumbing:issues list -f 'assigned=$me' $keys $args
EOF
2.1.11. List my reported issues
$ jls reported
Show list of the issues reported by the user.
Examples:
# list all reported issues
$ jls reported
# list all reported issues using shortened form
$ jls r
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jls,list,lis,li,ls,l reported,reporte,report,repor,repo,rep,re,r
k
plumbing:issues list -f 'reported=$me' $keys $args
EOF
2.1.12. Create a new sub-task
$ jcr sub-task [<parent_issue_keys>] [-k] [-e] [-n <number>]
Create a new sub-task.
Examples:
# create a new sub-task in PMWG project for PMWG-100 using
# an editor to get summary from the user
$ jcr sub-task CARD-100 PMWG -e
# create a new sub-task in KWG project for KWG-100 using
# stdin to get summary from the user
$ echo 'Summary for a new sub-task' | jcr-st CARD-100 KWG
# create 5 new sub-tasks in SWG project for the same
# SWG-101 using stdin to get new sub-tasks' summaries from
# the user
$ jcr st CARD-101 -n 5 <<EOF
This is a summary for the first sub-task.
This is a summary for the second sub-task. This one is
folded using leading whitespace on lines with
continuation of the text.
Third sub-task.
{{{Fourth sub-task's summary.}}}
Fifth sub-task.
EOF
# create as many sub-tasks in VIRT project for CARD-102 as
# provided summaries using stdin
$ jcr st CARD-101 VIRT -n EOF <<EOF
First issue's summary...
Second issue's summary..
Third issue's summary...
...
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jcr,create,creat,crea,cre,cr,c sub-task,sub,st,s
k,e,n
plumbing:issues create -T Sub-Task -L Implements \
-F Summary,assignee=$me $keys $args
EOF
2.1.13. Create a new Blueprint
$ jcr blueprint [<parent_issue_keys>] [-k] [-e] [-n <number>]
Create a new sub-task.
Examples:
# create a new blueprint for CARD-100 using an editor to get
# field values from the user
$ jcr blueprint CARD-100 -e
# create a new blueprint for CARD-100 using stdin to get
# summary from the user
$ jcr bp CARD-100 <<EOF
Summary: This is a new summary
Description: {{{
This is a multiline description for the blueprint.
....
}}}
Depends on: CARD-120
Labels: SOME_LABEL
EOF
# create 5 new blueprints for the same CARD-101 using stdin
# to get new blueprint's field values from the user
$ jcr bp CARD-101 -n 5 <<EOF
Issue:
EOF
# create as many blueprints for CARD-102 as provided
# summaries using stdin
$ jcr bp CARD-101 -n EOF <<EOF
First blueprint's summary...
Second blueprint's summary..
Third blueprint's summary...
...
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jcr,create,creat,crea,cre,cr,c blueprint,blue,blu,bl,bp,b
k,e,n
plumbing:issues create -T Blueprint -L Implements -F \
Summary,Description,assignee=$me $keys $args
EOF
2.1.14. Edit an issue
$ jed [-k] [-e] [<issue_keys...>]
Edit a JIRA issue.
Examples:
# edit an issue using an editor
$ jed PMWG-100 -e
# edit an issue by setting its listed fields
$ echo 'This is a new summary' | jed PMWG-100 -F Summary
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jed,edit,edi,ed,e blueprint,blue,blu,bl,bp,b
k,e
plumbing:issues edit $keys $args
EOF
2.1.15. Start working on an issue
$ jtr start [-k] [-e] [-m <msg>] [<issue_keys...>]
Transition a JIRA issue into the `In Progress` status.
Examples:
# Start working on an issue
$ jtr start PMWG-100
# Start working on a couple of issues and add a comment
$ jtr PMWG-100,PMWG-101 -c <<EOF
This is a comment to be added to both issues after their
statuses are changed to `In Progress`.
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jtr,transition,transitio,transiti,transit,transi,trans,tran,tra,tr,t
k,e,m
plumbing:issues transition $keys 'In Progress' $args
EOF
2.1.16. Resolve an issue
$ jtr resolve [-k] [-e] -m <msg>] [<issue_keys...>] <resolution>
Transition a JIRA issue into the `Resolved` status and set
its resolution to the one provided.
Examples:
# Resolve an issue as Delivered also adding a comment to it
$ echo 'Finally!' | jtr resolve PMWG-100 Delivered -c
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jtr,transition,transitio,transiti,transit,transi,trans,tran,tra,tr,t\
resolve,resolv,resol,reso,res,re,r
plumbing:issues transition $keys $args
k,e,m
EOF
2.1.17. Log time spent on an issue
$ jwt [-k] [<issue_keys...>] <from_date> <effort>
Add work log entry for the issue specified reporting
<effort> hours spent starting from <from_date>.
Examples:
# Log time spent on an issue during this week (on Friday)
$ jwt KWG-100 -5d 3.5h
# Log time spent on a few issues during the week
$ jwt -k <<EOF
# issue key to report time against
KWG-100
# date when the reported chunk of work was started
-5d
# Amount of time spent
2h
KWG-101
-3d
50m
KWG-102
-1d
1d
EOF
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jcr,create,creat,crea,cre,cr,c blueprint,blue,blu,bl,bp,b
plumbing:worklog add $keys $args
EOF
2.1.18. Link dependencies
$ jln depends [<issues_to_link...>] [<issues_to_link_to...>]
Link <issues_to_link...> as depending on
<issues_to_link_to...>
Examples:
# Link PMWG-101 as depending on PMWG-100
$ jln depends PMWG-101 PMWG-100
# Link PMWG-101,PMWG-102 and PMWG-103 as depending on
# PMWG-100
$ jln dep PMWG-101,PMWG-102,PMWG-103 PMWG-100
# Links PMWG-105 as depending on PMWG-101 and PMWG-102
$ jln d PMWG-105 PMWG-101,PMWG102
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jcr,create,creat,crea,cre,cr,c blueprint,blue,blu,bl,bp,b
plumbing:issues link -L Implements $keys $args
k,e,n
EOF
2.1.19. Link implementors
$ jln implements [<issues_to_link...>] [<issue_to_link_to>]
Link <issues_to_link...> as depending on
<issue_to_link_to>
Examples:
# Link PMWG-101 as implementing PMWG-100
$ jln implements PMWG-101 PMWG-100
# Link PMWG-101,PMWG-102 and PMWG-103 as implementing
# PMWG-100
$ jln impl PMWG-101,PMWG-102,PMWG-103 PMWG-100
# Links PMWG-105 as depending on PMWG-101 and PMWG-102
$ jln d PMWG-105 PMWG-101,PMWG102
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jcr,create,creat,crea,cre,cr,c blueprint,blue,blu,bl,bp,b
issues link -L Implements $keys $args
k,e,n
EOF
2.1.20. Unlink dependencies
$ jul depends [<issues_to_unlink...>] [<issues_to_unlink_from...>]
Unlink <issues_to_unlink...> as depending on
<issues_to_unlink_from...>
Examples:
# Unlink PMWG-101 as depending on PMWG-100
$ jul depends PMWG-101 PMWG-100
# Unlink PMWG-101,PMWG-102 and PMWG-103 as depending on
# PMWG-100
$ jul dep PMWG-101,PMWG-102,PMWG-103 PMWG-100
# Unlink PMWG-105 as depending on PMWG-101 and PMWG-102
$ jul d PMWG-105 PMWG-101,PMWG102
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jul,unlink,unlin,unli,unl,un,ul,u blueprint,blue,blu,bl,bp,b
plumbing:issues unlink -L Implements $keys $args
k,e,n
EOF
2.1.21. Unlink implementors
$ jul implements [<issues_to_unlink...>] [<issue_to_unlink_from>]
Unlink <issues_to_unlink...> as depending on
<issue_to_unlink_from>
Examples:
# Link PMWG-101 as implementing PMWG-100
$ jln implements PMWG-101 PMWG-100
# Link PMWG-101,PMWG-102 and PMWG-103 as implementing
# PMWG-100
$ jln impl PMWG-101,PMWG-102,PMWG-103 PMWG-100
# Links PMWG-105 as depending on PMWG-101 and PMWG-102
$ jln d PMWG-105 PMWG-101,PMWG102
This command is defined using the following plumbing command:
$ jic --plumbing command add <<EOF
jul,unlink,unlin,unli,unl,un,ul,u blueprint,blue,blu,bl,bp,b
issues unlink -L Implements $keys $args
k,e,n
EOF
-------- 8< -------- 8< -------- 8< -------- 8< --------
Thank you for reading through down to this place. It is important for
everyone involved to get jic capable of doing the most needed things
first.
Please, send me your feedback (whatever it is, including "looks sane"
kind of it). :)
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs