Synchronize Asana tasks.
Upon execution, tw_asana_sync
will synchronize, and on subsequent runs of the
program keep synchronized, the following attributes:
- Asana task
name
<-> TW taskdescription
- Asana task
completed
<-> TW taskstatus
- Asana task
due_at
ordue_on
<-> TW taskdue
- Asana task is deleted <-> TW task is deleted
Current limitations:
- Does not sync Asana tags, project names, subtasks, projects, likes, etc.
- Does not sync Taskwarrior tags, projects, annotations, etc.
- Only supports authentication with an Asana Personal Access Token
- Only syncs Asana tasks that are assigned to the user associated with that access token
You can find synchronize a series of Taskwarrior tasks that have a particular (or multiple) tags or synchronize all the tasks that belong to a particular project.
Use --taskwarrior-tags ...
or --taskwarrior-project
respectively for the
above
First, generate a personal access tokenon Asana.
Next, make this token available to tw_sync_asana
. This can be done by either:
- Storing the token in environment variable
ASANA_PERSONAL_ACCESS_TOKEN
. - Storing the token with password store,
and telling Asana to load the token with
--token-pass-path
.
$ tw_asana_sync --list-asana-workspaces
Asana workspaces:
====================
- My Workspace: gid=123456789012345
To synchronize Asana tasks within a workspace:
tw_asana_sync --taskwarrior-tags asana --asana-workspace-gid 123456789012345 --token-pass-path <path-to-asana-token-in-password-store>
Or:
tw_asana_sync --taskwarrior-tags asana --asana-workspace-name my-workspace --token-pass-path <path-to-asana-token-in-password-store>
If you haven't installed or don't want to install password store you can pass the access token via an environment variable
ASANA_PERSONAL_ACCESS_TOKEN=123456789012345 tw_asana_sync -t asana -W my-workspace
Install the syncall
package from PyPI, enabling the asana
and tw
extras:
pip3 install syncall[asana,tw]