Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Python script to export Redmine (http://redmine.org) issues into OmniFocus (http://www.omnigroup.com/applications/omnifocus) projects
Branch: master
Pull request Compare This branch is 1 commit ahead, 13 commits behind guyboltonking:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
README.md
redmine-to-omnifocus

README.md

Dependencies

To use this script you'll need:

  • Python >= 2.6 < 3.0
  • BeautifulSoup >= 3.0

BeautifulSoup can be installed using setuptools:

  • Install setuptools
  • Run sudo easy_install BeautifulSoup

Usage

Here's the output from redmine-to-omnifocus --help:

Usage: redmine-to-omnifocus [options] REDMINE-URL MY-NAME ISSUE-FOLDER-PATH ASSIGNED-CONTEXT-PATH WAITING-CONTEXT-PATH AVAILABLE-CONTEXT-PATH

Logs into the REDMINE-URL, retrieves the open issues, and inserts
them into ISSUE-FOLDER-PATH in OmniFocus.

  - REDMINE-URL: the URL of the redmine installation, e.g. "http://redmine.org"
  - ISSUE-FOLDER-PATH: colon-separated path to the OmniFocus folder
    under which Redmine tasks will be inserted e.g.
    "Earn a Living:Do work for clients"
  - MY-NAME: your full name in Redmine (not your login name); this is
    a regular expression, so you can match against a number of names,
    or compensate for changes in name representation.
  - ASSIGNED-CONTEXT-PATH: colon-separated path to the OmniFocus
    context that is set on tasks that are assigned to MY-NAME.
  - WAITING-CONTEXT-PATH: colon-separated path to the OmniFocus context that
    is set on tasks that are assigned to someone else.
  - AVAILABLE-CONTEXT-PATH: colon-separated path to the OmniFocus
    context that is set on tasks that are not assigned to anyone.

The idea is to get all your external tasks into one place.  You can
organise the imported tasks any way you like (including nesting them
inside each other), and the importer won't move them around _unless_
the project changes.  The context won't be changed unles the assignee
changes.  The task subject, descript, due date and completion status
will be overwritten on subsequent imports.

To use it, you should set the "Issues export limit" in Redmine's
"Issue Tracking" Settings tab to a high enough value such that all
issues are exported.

The requirements are:
 
  1. Nothing is lost: If a task is assigned to you, then you must be
     able to see it in OmniFocus.

  2. Don't waste my time: Don't import things that you don't need to
     pay attention to:

     2.1. If you're not interested in a particular project and there are no
          tasks assigned to you in that project, you shouldn't have to track
          it in OmniFocus.

Tasks are inserted according to the following rules:

  1. A new task in Redmine will be added to a project with the same
     name in the ISSUE-FOLDER-PATH or one of its child folders.  If no
     matching project can be found, then a new project will be created
     under ISSUE-FOLDER-PATH if the task is assigned to MY-NAME.  If
     the issue has a target version, then the task will be inserted as
     a child of a task with that target version's name; the version
     task will be created if it doesn't exist.

  2. An OmniFocus task is considered to be a Redmine task if its name
     starts with '#'.

  3. The following attributes of an OmniFocus task will be set:

     - name: '#REDMINE-TASK-ID: REDMINE-SUBJECT'
     - note: The Redmine task description, a URL pointing to the task,
       misc. other useful stuff.
     - due date: The Redmine due date.
     - start date: The Redmine start date.
     - context:
       - If the Redmine task is assigned to MY-NAME, and the current
         context is WAITING, then make it AVAILABLE.
       - If the Redmine task is not assigned to ME, set the context to
         WAITING

  4. Tasks that have moved to a different project/version will be
     moved to that project/version; if the project isn't being tracked
     by OmniFocus, then the task is deleted.

  5. Tasks that are in OmniFocus and no longer in Redmine's open
     issues are set to be completed.

Options:
  -h, --help           show this help message and exit
  --username=USERNAME  Login as USERNAME
  --password=PASSWORD  Login with PASSWORD
  --use-growl          Use growl for notifications
Something went wrong with that request. Please try again.