ここで良いサマリア人のどれかが何が起こっているのか説明できるのかと思います。値は入力文字列から解析されたように見えますが、すべて最初の変数に保存されます。
bash-4.2# SYNC_REPO='vendor:path'
bash-4.2# echo $SYNC_REPO
vendor:path
bash-4.2# IFS=':' read REPO_PROVIDER REPO_DIR REST <<< ${SYNC_REPO}
bash-4.2# echo "[$REPO_PROVIDER, $REPO_DIR, $REST]"
[vendor path, , ]
私は何を見逃していますか?