/todoist-action

Synchronize Github tasks with Todoist :ballot_box_with_check:

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Todoist Github Action

Synchronize Github tasks to Todoist with Github Actions!

lifecycle

Do you love getting Karma points but feel adding all the tasks into Todoist isn't worth it? Well, you're in luck. This Github Action synchronizes your Github issues and tasks so you can get to the next karma level easy!

Tools like Todoist is excellent for productivity, and now for developers too. Being an active contributor to Github Actions, I feel an integration between Github and Todoist is another ideal use-case. Run it periodically to get the latest issues added to your todo list!

Example

You can see a running example in this repo.

- name: Sync issues
  id: sync
  uses: cobraz/todoist-action@v1
  with:
    github-token: ${{ secrets.GH_TOKEN }}
    todoist-token: ${{ secrets.TODOIST_TOKEN }}
    query:
      updated:>2020-06-01 archived:false sort:updated-desc assignee:cobraz
      -label:backlog
    sync-file-name: ./sync.json

Configuration

The action can be configured with the following arguments:

  • github-token (required) We need a personal Github token in order to use the Github API to get issues.

  • todoist-token (required) In order to make authorized calls to the Todoist Sync API, we need a Todoist token. You can obtain your personal API token from the integrations settings for your account.

  • query (required) The search for which you want issues / pull requests. You'll have to use Githubs search syntax.

  • sync-file-name (optional) Where to retrieve/store the synchronization data, read more about that below.

  • sync-content (optional) Input for synchronization data, read more about that below.

Synchronization Data

This Github Action needs a state, which you are free to choose which. You can find an example in my workflows, where I use Github Action cache to store the synchronization data.

You can either use file storage or use Github Action input/output to communicate with the Action. sync-content is an output of this Github Action; it contains a JSON dump that you can store somewhere. Just make sure you send that same JSON dump back as an input (sync-content).

If you want to use Amazon S3 or Google Storage, you can download and upload a file (defined by sync-file-name).

Known issues

This Github Action is still experimental; most of the synchronization operation works (and you can see examples of it used here). However, if you complete a task in Todoist – the Github issue will not be closed. The action also does not synchronize more issues than what is returned by the API (it does not paginate).

Contribute

Feel free to open an issue or pull request. The Todoist Action is still experimental, help us get is stable! Feedback is much appreciated!

Thanks

The awesome logo was made by @AnneMatilde! 🙏

Notice: This is not created by or associated with Todoist in any way.