Skip to content

Latest commit

 

History

History
67 lines (55 loc) · 3.47 KB

DEVELOPING.md

File metadata and controls

67 lines (55 loc) · 3.47 KB

Developing

github2omnifocus is a tool to bring a set of Omnifocus tasks into line with the user's issues, awaiting PR reviews and notifications in Github.

The application can be viewed as a reconciliation loop between a current and desired state:

  • The current state is the set of tasks in Omnifocus managed by github2omnifocus. These are read using JXA (Javascript automation) from Omnifocus.
  • The desired state is the currently open issues assigned to the user, the PRs they've been requested to review and their notifications.

Once the current and desired states have been retrieved from Omnifocus and Github, the application calculates the operations to bring Omnifocus into the desired state via task creation and completion, then carries those operations out.

JXA

JXA is a Javascript automation framework for macOS applications that leans heavily on their Applescript automation features. It was heralded as the future of automation on macOS, but has been somewhat neglected since so far as I can tell. I find it easier to write than Applescript, and have pieced together the scripts that are used by this application mostly from samples in the Omnifocus forums. They work, which feels about the best that can be said for them.

Notes

This is basically a set of reminders to me for when developing this app.

Useful links