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.
Synchronize issues assigned to you, one-way, from a Github repo into Things.
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.
These may be used in a configuration file (param = value
) or on the CLI (-param value
).
githubLogin
: your Github username. Required.tagNamespace
: namespace to use as a prefix for tags imported from Github. Optional; default is "github".delegate
: the sync delegate used to communicate with the local task manager app. Optional; default is Things. Currently only Things is supported.map.label name
(-"map.label name"
on the CLI, if you need spaces): map a Github label to a local tag name. Optional.repoOwner
: the owner of the Github repo to sync. Required.repoName
: the Github repo to sync. Required.areaName
: the area in Things to use for this project. Optional; default is none.projectPrefix
: prefix which will be applied to project names & tasks’ titles (before the issue number). Optional; default is none.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.
thingshub -logout <GitHub Username>
thingshub -version
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
.
Ensure that the target directories exist and you can write to them.
Thanks to:
MIT; see LICENSE in this distribution.
make bootstrap
to set up a local, self-contained environment for CocoaPods. Its only external dependency is Bundler.make pods
runs bundle exec pod install
for you.The following will be placed in the notes field for relevant projects/todos:
//thingshub/ORG/REPO/issue/###//
//thingshub/ORG/REPO/milestone/###//
NSRunLoop