About six years ago, David Christian developed a JIRA CLI called jiranemo (his original blog post is, somewhat surprisingly, still around on the rPath website). After he left rPath, I spent some time updating the code for Jira 4 and adding some minor features, but it's been mostly stagnant for about two years. In the meantime, Jira 5 has been released, and the core dependency of jiranemo, SOAPpy, has been declared dead.
This month, Eucalyptus started on the migration path from using a combination of RT and Launchpad to using Jira. I'm really excited about the change, and it gave me a chance to pick up the jiranemo code again. I've now converted it from SOAPpy to suds, and on Monday I used it to import 2000 issues from RT into jira (stay tuned for details on that becoming a publicly-accessible system). I had database access to RT, but all of the interaction with jira was done through the SOAP API. ( I realize they now also have a REST API, which looks awesome, but I already had the code for using SOAP ).
I should also note that before I took on this work, I looked at Matt Doar's python-based CLI, which worked well for single commands (and was a reference for some of my jiranemo updates), but it didn't have a library interface, and it seemed very inefficient to keep spawning new python processes for thousands of commands. Jiranemo's separation of the command-line option handling and config file parsing from the client library and helper functions make it fantastic for integrating into more complex python apps.
I expect that the next phase of development for jiranemo will be a gradual migration toward the REST APIs. If this code is useful to you and you'd like to contribute to this effort, feel free to fork my bitbucket repo and send me pull requests.