cdzombak / thingshub

[UNMAINTAINED] Synchronize issues assigned to you from a Github repo into Things.
MIT License
18 stars 2 forks source link
applescript github scriptingbridge sync things3

Unmaintained

No Maintenance Intended

Unmaintained: Due to several factors (apparent Things.app instability when using Scripting Bridge, bugs like #34 resulting in odd duplicates and project splits, and the GitHub Authorizations API going away which will require rewriting large parts of the software), I’m no longer devoting any time to this project.


ThingsHub

Synchronize issues assigned to you, one-way, from a Github repo into Things.

Usage

Configuration

ThingsHub checks for a config file at ~/.thingshubconfig, then traverses from the home directory down to the current dir (or from the root to the current dir, if the current directory isn't in ~), merging in .thingshubconfig files as it finds them.

This means you can put global configuration and defaults (eg. githubLogin, tagNamespace) in ~/.thingshubconfig, leaving project-specific settings (eg. repoOwner, repoName, areaName, projectPrefix) in your-project-dir/.thingshubconfig, sort of like using git's configuration system.

Configuration parameters may additionally be specified on the command line, like -githubLogin cdzombak. Parameters specified on the command line override those found in any configuration files.

See thingshubconfig.example in this distribution for details on the configuration format.

You may also want to add .thingshubconfig to your ~/.gitignore.

Run with the -verbose flag to see the final, resolved configuration.

Parameters

These may be used in a configuration file (param = value) or on the CLI (-param value).

Run

The simplest usage is just to run thingshub and specify all configuration options on the command line.

Alternatively, run thingshub from a project's directory, optionally specifying configuration options via the CLI. ThingsHub will configure itself from your configuration files as described in the Configuration section.

Logout/Reset Github OAuth Token

thingshub -logout <GitHub Username>

Version Check

thingshub -version

Installation

Current version: v1.1.1.

Installation requires Xcode.

Get the most recent release and run make install. This will install thingshub to /usr/local/bin and its man page to /usr/local/share/man/man1.

Troubleshooting

Ensure that the target directories exist and you can write to them.

Workflow

Why one way sync? Why GitHub as the source of truth?

Sync (to Things)

Tags

Contributors

Thanks to:

License

MIT; see LICENSE in this distribution.

Dev Notes

Implementation details

Things

Identifying synced items:

The following will be placed in the notes field for relevant projects/todos:

Reference Material

Things and Scripting Bridge

RAC

Github API

KVC, Predicates

NSRunLoop