Vikunja PHP Importer
I talked about 10+ Asana alternatives here. Most the solutions do not provide a direct import from Asana and one solution that I have been using a lot lately is Vikunja.
As no importer exists and Vikunja provides an extensive API, I decided to build an importer myself. The importer allows to import from Asana CSV exports or directly through the Asana API.
Current features
Import Plugins
- CSV Import: Import tasks from an Asana CSV file (
AsanaCsvParser). - API Import: Import tasks directly from the Asana API (
AsanaApiImporter), including subtasks and comments.
Task Import
- Import tasks, subtasks, and tags.
- Assignee is mapped to Vikunja user by email address.
- Notes from Asana are transferred as description (
description). - Comments from Asana are passed as the
commentsfield.
Project Creation
- Uses existing project ID from environment variable (
IMPORTER_PROJECT_ID). - Automatically creates a new project if no ID is set.
- Plugins can suggest a project name (e.g. filename or Asana project name).
Bucket/Section
- Tasks are imported into buckets/sections according to the Asana column/section.
CLI & Interactivity
- CLI tool (
cli.php) with arguments and interactive input. - Selection of plugin, view type, dryrun mode, and project name.
- Preview option for CSV and Asana API (shows the first 10 tasks before import).
Dryrun Mode
- Shows all planned actions without making changes in Vikunja.
Extensibility
- Plugins can be easily added (e.g. for other formats or APIs).
- Plugin interface allows flexible sources and custom logic.
Configuration
- Environment variables for API token, base URL, and project ID.
.env.exampleas a template.
Code Quality
- PSR-4 autoloader.
- Unified file header with metadata.
- Composer support for dependencies and autoload.
The codebase is currently in early testing and will be released in the next few weeks.
Cheers
Alex
