Skip to content

Board consolidation and migration

BoardConsolidation.cs moves every ticket from the default Hold board into Open and then deletes Hold. It discovers both boards by slug.

The example deliberately does not fetch page 1, move those tickets, and then follow the old next_page_url. Moving records out of the filtered source board changes the result set and can make a previously calculated page 2 skip records. Instead, the workflow repeatedly fetches the first page with BoardId = source.Id and PerPage = 200 until no source tickets remain.

WIP limits still apply. A move can return 422 if the destination cannot accept more work. Production migration code should decide whether to stop, select another target, or adjust the workflow configuration. Do not treat that 422 as a transient retry condition.

After migration, the example sends move_to_board_id when deleting the old board as a final safety measure. The API performs a soft delete.

dotnet run --project examples/Okatana.Examples -- board-consolidation