JIRA To Omnifocus Script

This script logs into your JIRA and creates OmniFocus tasks for each of the JIRA items that are assigned to you, so they sync to your Omnifocus for iPhone, you only have to keep track of one inbox, etc. It only takes a tiny bit of setup.

Setting up

To set this up, do the following:

  1. Download the script and put it somewhere it will run
  2. Install the required gems (appscript, crypt, password) with gem install.
  3. Go to JIRA and create a saved filter with whatever settings you like. Note the filter ID.
  4. Go to the top of the jiratoomnifocus file and set it on the JIRA_FILTER_ID constant, and set the JIRA_BASE_URL to the URL of your JIRA installation.
  5. If you like to keep your system very secure, take a look at the security warning, below, at this time
  6. Run it. You will be asked to login the first time. After it’s done, note the new tasks on your Omnifocus. Delete a task and run it again to see it add it again without asking you for authentication.

You’re set up! Now you can put it on a cron line, like this one which sets it to run at office hours (use cron -e on Terminal for this):

0,10,20,30,40,50 7-18 * * * /yourdir/jiratoomnifocus > /yourdir//log/jira_to_omnifocus.log 2>&1

Congratulations! You now have only one inbox again. Let me know if you use it; I’d love to know of more ideas on how we can make it better/easier to setup.

Security Warning

The password for your JIRA account will be saved on a file on your computer called ~/.hackerdude/jira_credentials.yml. It is encrypted using blowfish using a constant key.

As long as both your jiratoomnifocus script and your credentials file are secured as (chmod 700 and owned by the user that will be running it on cron), you should be okay and secure (unless someone breaks into your account, in which case you have bigger problems than your JIRA access!). The crypt key used is a constant on the jiratoomnifocus script. Change the CRYPT_KEY key for any other random string of the same length and delete the jira_credentials.yml file (so it asks for your password again) and it will be recreated using your key the next time you start it.