feat(semaphore): add Get Pipeline action component#3142
feat(semaphore): add Get Pipeline action component#3142energypantry wants to merge 6 commits intosuperplanehq:mainfrom
Conversation
Add a new GetPipeline component for the Semaphore integration that retrieves a pipeline by ID from the Semaphore API. This enables users to inspect pipeline state and result within SuperPlane workflows. Includes backend component, tests, example output JSON, and frontend mapper for displaying pipeline details. Closes superplanehq#2827 Signed-off-by: Nenad Ilic <nenadilic84@gmail.com>
Use the default state registry to correctly reflect execution status (success, error, running, etc.) instead of hardcoding neutral state. Signed-off-by: Nenad Ilic <nenadilic84@gmail.com>
Signed-off-by: Nenad Ilic <nenadilic84@gmail.com>
Removes the unused ComponentBaseSpec import that causes a TypeScript compilation error under strict mode (noUnusedLocals). Signed-off-by: Nenad Ilic <nenadilic84@gmail.com>
Signed-off-by: Nenad Ilic <nenadilic84@gmail.com>
- Use JSON marshal/unmarshal in test to robustly inspect emitted Pipeline payload instead of direct type assertion - Remove duplicate local stringOrDash helper and import the shared version from mappers/utils.ts Signed-off-by: Nenad Ilic <nenadilic84@gmail.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
| core.DefaultOutputChannel.Name, | ||
| GetPipelinePayloadType, | ||
| []any{pipeline}, | ||
| ) |
There was a problem hiding this comment.
Pipeline fields are silently dropped
Medium Severity
Execute emits the result of client.GetPipeline as a typed Pipeline object, which only keeps a small fixed subset of keys. Any additional fields returned by Semaphore are lost before emission, so downstream workflow steps cannot read full pipeline metadata from semaphore.getPipeline.
|
@energypantry video is required to proceed with the review. I will close this one to avoid clutter but please free to reopen once you get the chance to attach the video. |


Summary
semaphore.getPipelineaction component to fetch a pipeline by IDname,ppl_id,wf_id,state,result, extra fields) to the default output channelVerification
go test ./pkg/integrations/semaphore/...make check.build.ui(blocked locally: Docker daemon unavailable in this environment)Notes
Closes #2827