Seed the dedup map at the start of insertFromStructure with the importing
user's existing labels, keyed by title + normalized hex color. Previously
the map was empty on each run, so importing the same CSV (or any other
migration format) twice would create a second copy of every label.
Scoped to the user's own labels so imports don't silently link to other
users' labels visible via shared projects.
Fixes#2742
Increase golangci timeout
Fix installing golangci-lint in ci
Remove mage targets replaced by golangci
Run golint in ci
Add goheader linter
Enable & fix more linters
Fix lint issues
Add mage target to automagically fix issues found by golangci
golangci-lint run --fix
Add golangci config
Add golangci mage target
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/676
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
Add swagger docs + fix lint
Add parsing logic + fix fixtures
Fix test init
Add logging to creating labels and debug logs
Add creating labels when migrating
Finish test fixtures
Started adding fixtures for testing
Add method and test structures to convert todoist to vikunja
Add basic structure to migrate everything
Add all structs for todoist api
Add docs for config options
Add routes for todoist migrator
Add api token exchange
Add basic structure for todoist migration
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/566
Remove task text and namespace name in migration
Fix lint
Add migration for namespace title
Fix renaming namespace name to title
Rename namespace name field to title
Drop text column at the end of the migration
Add migration for task text to title
Rename task text to title
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: https://kolaente.dev/vikunja/api/pulls/528