It's a one-way sync from Linear to Asana.
Linear | Asana |
---|---|
Team | Team |
Milestone | Portfolio |
Project | Project |
Issue | Task |
Create a virtual environment:
python3 -m venv ./venv
source ./venv/bin/activate
pip install -r requirements.txt
Create a .env
file with all of the following values set :
FLASK_APP=src.app
FLASK_RUN_HOST=0.0.0.0
FLASK_RUN_PORT=5580
FLASK_ENV=development
LINEAR_PERSONAL_TOKEN=YOUR_PERSONAL_LINEAR_TOKEN
ASANA_PERSONAL_TOKEN=YOUR_PERSONAL_ASANA_TOKEN
Create the Q1_2022
Linear milestone portfolio in Asana based on a template portfolio:
flask create milestone-portfolio "Q1 2022"
When syncing for the first time, use the asana-projects-by-template
to use the master portfolio template :
flask sync asana-projects-by-template "Q1 2022"
The template portfolio should be set by changing ASANA_PORTFOLIO_TEMPLATE_ID
in config.py
.
Run a common sync:
flask sync asana-projects "Q1 2022"
flask create milestone-portfolio "Q2 2022"
Add the output portfolio gid
to the LINEAR_MILESTONE_ASANA_PORTFOLIO
variable in config.py
.
After that run :
flask sync asana-projects-by-template "Q2 2022"
Now you can list the this quarters squad portfolio ids:
flask info asana-squad-portfolio-ids
Add the ids according to the tribe/squad map in the ASANA_TEAMS_PORTFOLIOS
variable in config.py
To sync the projects, you can POST your milestone name to the app:
curl -X POST YOUR_APP_ENDPOINT/linear-asana-sync/ -d '{"milestone_name":"Q2 2022"}'
flask delete milestone-portfolio "Q2 2022"
You can find the team ids by running:
flask info asana-custom-team-ids
Update the team ids in sync in the ASANA_CUSTOM_FIELD_TEAM
map config.py
with the relevant ids.
Likewise, you can find the team ids by running:
flask info linear-team-ids
Update the team ids in sync in the LINEAR_TEAMS
map config.py
with the relevant ids.
To add any new users to a portfolio after creation:
Add any Asana user id to the ASANA_PORTFOLIO_USERS_IDS
list in config.py
flask info update-milestone-portfolio-members "Q2 2022"