Automating code migrations and dependency upgrades