Migrate board columns to workflow stages#71
Merged
Conversation
Teamwork retired the Boards endpoints after migrating installations to Workflows, so the BOARD_COLUMN_* feature broke with "Boards endpoints are now unavailable, please use Workflows endpoints" (#68). Resolve the configured stage name to its workflow + stage IDs in a single v3 call (GET /projects/api/v3/workflows.json?projectIds=&include=stages), then move the task with PATCH /projects/api/v3/tasks/{id}/workflows/{wf}.json. The null-guarded jq also fixes the "Cannot iterate over null" crash. Rename the BOARD_COLUMN_* inputs to WORKFLOW_STAGE_*, keeping the old names as silent fallback aliases.
rafaeljusto
approved these changes
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Teamwork migrated installations to Workflows and retired the Boards endpoints, so the
BOARD_COLUMN_*feature no longer works — the API now respondsInstallation migrated to Workflows, Boards endpoints are now unavailableand the action crashes on the empty payload (jq: error … Cannot iterate over null).This reinstates the "move the task as the PR moves" behaviour against the v3 Workflows API:
workflowId+stageIdin one project-scoped call —GET /projects/api/v3/workflows.json?projectIds=<id>&include=stages— matching on stage name (case-sensitivecontains, first match wins, as before).PATCH /projects/api/v3/tasks/<taskId>/workflows/<workflowId>.jsonand body{ "stageId": <id>, "positionAfterTask": -1 }(the same call the Go SDK'sWorkflowStageTaskMovemakes).jqis null-guarded, so a project with no matching stage logs and skips instead of crashing.Inputs
BOARD_COLUMN_OPENED/_MERGED/_CLOSEDare renamed toWORKFLOW_STAGE_OPENED/_MERGED/_CLOSED. The old names still work as silent fallback aliases, so existing configs keep functioning.Closes #68
Test Task