Repository is archived
No commit activity in last 3 years
No release in over 3 years
This utility connects to your accounts to transfer tasks from a given Wunderlist list to a given repository on GitHub.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.14
~> 0.10
~> 10.0
~> 3.0
~> 0.47

Runtime

~> 0.14
~> 0.19
 Project Readme

Wunderlist-To-Github

You have tasks in a list in Wunderlist, but you want them as issues on GitHub. That's what this does.

Limitations are defined in the Future Work section at the bottom. If you want to see a change made, please, open an issue or issue a pull request.

Installation

Add this line to your application's Gemfile:

gem 'wunderlist_to_github'

And then execute:

$ bundle

Or install it yourself as:

$ gem install wunderlist_to_github

Prerequisites

This project assumes you have a Wunderlist account and are logged in as the user whose tasks you want to migrate to GitHub.

First, you must create a Wunderlist application. The values for the form fields don't matter. After creating the application, you should see a "Client ID" and a "Client Secret"; save the client ID for later use in this program. There is also a link to "Create Access Token"; click that. This will reveal an access token to be saved along with the client ID from before.

With Wunderlist setup, let's move to GitHub. Start by getting a personal access token. Enter anything you'd like for the "Token description", but be sure to check the box next to "repo" so that token has the proper permissions. When finished, click "Generate token", and save the token along with the Wunderlist items from before.

Usage

All available commands can be viewed via the help command.

$ wunderlist_to_github help

Before the following commands can be run, those values saved from the Prerequisites section will need to be set as environment variables. The first option is to export them all.

$ export WUNDERLIST_CLIENT_ID=12345678901234567890
$ export WUNDERLIST_ACCESS_TOKEN=123456789012345678901234567890123456789012345678901234567890
$ export GITHUB_LOGIN=yourlogin
$ export GITHUB_API_TOKEN=1234567890123456789012345678901234567890

The second option is to store them in a file called .env.

$ cat .env
WUNDERLIST_CLIENT_ID=12345678901234567890
WUNDERLIST_ACCESS_TOKEN=123456789012345678901234567890123456789012345678901234567890
GITHUB_LOGIN=yourlogin
GITHUB_API_TOKEN=1234567890123456789012345678901234567890

That approach requires calling the following commands like so.

$ env $(xargs < .env) wunderlist_to_github command arg0 arg1 arg2

This is how I set environment variables for a given program since others I run later cannot read them.

See all the tasks' titles that will be retrieved for a given list.

$ wunderlist_to_github tasks WUNDERLISTNAME

Convert tasks into issues.

$ wunderlist_to_github convert WUNDERLISTNAME GITHUBUSER GITHUBPREPOSITORY

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/geowa4/wunderlist_to_github. Generally, anything with a relevant use case and tests will be accepted.

Future Work

  • Keep completed state of subtasks; must submit pull request to sh8/wunderlist-api.
  • Retry on API failure.
  • Skip first n issues (in case of failure).
  • Edit a GitHub issue if reran in case of failure or updates in Wunderlist.
  • Add formatting options.
  • Assign GitHub users based on Wunderlist assignee.
  • Override environment variables with command line options.