Janbanery-Shell - Kanbanery.com board from your favourite shell!
Kanbanery is a web app for managing your projects Kanban Style (somewhat similiar to SCRUM, but less restrictive and strict). Kanbanery has an web interface, as well as a iPad and iPhone version. The RESTful API is open so anyone can write his favourite tool to be integrated with it - and that's what I'm doing. This connector will be used in the upcomming Intellij IDEA plugin as well as the Android version of the app.
Janbanery is a Java library that provides a fluent and typesafe (no magic strings etc) API to access 100% of Kanbanery's features. Well, in fact, even above 100% (sic!) as we've added some filtering and mass operations if you'd want to count those as "atomic from the users perspective".
Feel free to use this library in any project integrating Kanbanery with your app or tool. Also, please share any thoughts about it and request new features where you'd see some possible cool things.
If you have any comments, feel free to open issues or contact me via email.
Janbanery for Android
Hey, did you know I'm also working on a Kanbanery for Android? Check it out on the market (very soon)! It also has it's small website if you'd want to take a look: Kanbanery For Android .Project13.pl.
Janbanery shell is using the Java Script Engine and Groovy to enable you to use your Kanbanery board, without even taking a look at it, all from your favourite place - the shell.
If you want to use Janbanery-shell, just download the executable jar and run it by:
java -jar uber-janbanery-shell-1.0-SNAPSHOT.jar
And start using it!
Logging in and how it works
It's easy to login with Janbanery-Shell, just enter your username and password. If you entered it right, the API key for kanbanery will be fetched, and used thoughout all requests to kanbanery - to keep your password safe!
Also, to make using janbanery-shell even more painless, the key will be stored under
~/.janbanery. So if you want to stop using auto sign-in, just remove this file.
In order to use Janbanery-Shell at "full speed", you will need to learn a little of the Janbanery fluent API. It's really simple, there are some examples bellow, but it's best to just look at the wiki of Janbanery.
Or even better... Use TAB completition! It's always up to date as it's being built with reflection from Janbanery sources. Also note that if a method takes parameters,
the completition will complete
janbanery.method( instead of
janbanery.method() (which it would do if the method takes no arguments).
You may want to check out the video with it in action on youtube.
Just to make you get the feel of Janbanery let's look at some examples right now:
Ok, what projects can I access?
def projects = janbanery.projects().all(); def projects = janbanery.usingWorkspace("janbanery").projects() .all(); janbanery.projects().byName("janbaneryProject"); // the above will be assigned to a variable with the name r0, / /and the result bellow would be assigned to r1, you get the idea :-) janbanery.projects().allAcrossWorkspaces();
Depending on the auto assign to variable trick, you cound for example do this:
def me = janbanery.users.current(); // me janbanery.tasks().byName("Finish coding") // r1 janbanery.tasks().assign(r1).to(me) // r3 is a taskFlow def taskFlow = r3 taskFlow.move().toNextColumn()
Get my User
User me = janbanery.users().current();
Take a look at the possible Task Types
List<TaskType> all = janbanery.taskTypes().all(); TaskType any = janbanery.taskTypes().any();
You can also work on columns
Column column = new Column.Builder("Testing").capacity(5).build(); Column last = janbanery.columns().last(); Column beforeLast = janbanery.columns().before(last); column = janbanery.columns().create(column).after(beforeLast); janbanery.columns().create(column).beforeLast(); janbanery.columns().move(column).toPosition(5);
And here's how you could use the flows if you wanted to
Task task = janbanery.tasks().create(task) .assign().to(me) // task flow .move().toNextColumn() // task movement flow .move().toNextColumn() // task movement flow .mark().asReadyToPull() // task flow .get(); // task
And there's much more...!
All ready to be used, so just start coding your Kanbanery integration right now!
Links and resources
- Janbanery - My fluent Java library which wraps the Kanbanery API
- Full Kanbanery REST API description (v1.2)
- blog.project13.pl - my blog, feel free to comment about this library there
You're free to use it as you wish, the license text is attached in the LICENSE file. You may contact me if you want this to be released on a different license, just send me an email firstname.lastname@example.org :-)`