Skip to main content

migrate-pipeline

Migrate Harness pipelines from v0 to v1 simplified format via MCP tools. Converts expressions from angle-bracket to ${{ }} syntax, lowercases type names, simplifies structure, and preserves variables, failure strategies, and conditional logic. Use when asked to migrate a pipeline, convert v0 to v1, upgrade pipeline format, modernize pipeline syntax, or compare v0 vs v1. Trigger phrases: migrate pipeline, convert to v1, upgrade pipeline, v0 to v1, modernize pipeline, simplified format.

Quellinformationen

Repository
thisrohangupta/cursor-harness-plugin
Letzte Quellaktivität
16. April 2026 um 23:31
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
migrate-pipeline
description
Migrate Harness pipelines from v0 to v1 simplified format via MCP tools. Converts expressions from angle-bracket to ${{ }} syntax, lowercases type names, simplifies structure, and preserves variables, failure strategies, and conditional logic. Use when asked to migrate a pipeline, convert v0 to v1, upgrade pipeline format, modernize pipeline syntax, or compare v0 vs v1. Trigger phrases: migrate pipeline, convert to v1, upgrade pipeline, v0 to v1, modernize pipeline, simplified format.
metadata
{"author":"Harness","version":"2.0.0","mcp-server":"harness-mcp-v2"}
license
Apache-2.0
compatibility
Requires Harness MCP v2 server (harness-mcp-v2)
# Migrate Pipeline Convert Harness pipelines from v0 to v1 simplified format via MCP. ## Instructions ### Step 1: Fetch Current v0 Pipeline ``` Call MCP tool: harness_get Parameters: resource_type: "pipeline" resource_id: "<pipeline_identifier>" org_id: "<organization>" project_id: "<project>" ``` ### Step 2: Convert v0 to v1 Apply these transformations: ### Expression Mapping | v0 Expression | v1 Expression | |--------------|---------------| | `<+pipeline.variables.x>` | `${{ pipeline.variables.x }}` | | `<+stage.variables.x>` | `${{ stage.variables.x }}` | | `<+steps.id.output.outputVariables.x>` | `${{ steps.id.output.x }}` | | `<+trigger.branch>` | `${{ trigger.branch }}` | | `<+secrets.getValue("x")>` | `${{ secrets.x }}` | | `<+pipeline.sequenceId>` | `${{ pipeline.sequenceId }}` | | `<+input>` | `${{ input }}` | ### Structure Changes **v0 CI Stage:** ```yaml stages: - stage: identifier: build type: CI spec: cloneCodebase: true platform: os: Linux arch: Amd64 runtime: type: Cloud spec: {} execution: steps: - step: identifier: run type: Run spec: shell: Bash command: npm test ``` **v1 Equivalent:** ```yaml stages: - name: build type: ci spec: steps: - name: run type: run spec: shell: bash run: npm test ``` **Key v1 differences:** - Stage/step types are lowercase: `ci`, `run`, `deployment` - `command` becomes `run` in Run steps - `execution.steps` simplifies to `spec.steps` - Platform/runtime is simplified or implicit - `identifier` becomes `name` (or `id`) ### Step 3: Show Converted Pipeline Present both v0 and v1 side-by-side for review. ### Step 4: Create or Update in Harness (Optional) v0 and v1 pipelines are **distinct resource types** in the MCP server (`pipeline` vs `pipeline_v1`). You cannot update a v0 pipeline in-place with v1 YAML. Choose one path: **Path A — Create a new v1 pipeline** (recommended, non-destructive): ``` Call MCP tool: harness_create Parameters: resource_type: "pipeline_v1" org_id: "<organization>" project_id: "<project>" body: { yamlPipeline: "<converted v1 pipeline YAML string>" } ``` **Path B — Update an existing v1 pipeline** (only if the v1 pipeline already exists under that ID): ``` Call MCP tool: harness_update Parameters: resource_type: "pipeline_v1" resource_id: "<pipeline_identifier>" org_id: "<organization>" project_id: "<project>" body: { yamlPipeline: "<converted v1 pipeline YAML string>" } ``` Do not pass a raw YAML blob without wrapping in `{ yamlPipeline: ... }` or as a raw string — passing a nested JSON `pipeline` object causes serialization errors. ## Migration Checklist - [ ] Expressions converted from `<+...>` to `${{ ... }}` - [ ] Stage types lowercased - [ ] Step types mapped correctly - [ ] Platform/runtime configuration simplified - [ ] Variables and inputs preserved - [ ] Failure strategies maintained - [ ] Notification rules preserved - [ ] Conditional execution logic preserved ## Examples - "Migrate the build-and-deploy pipeline to v1" - Fetch, convert, show diff - "Show me what ci-pipeline would look like in v1" - Fetch, convert, display only - "Convert all pipelines in the project" - List all, convert each ## Performance Notes - Read the complete v0 pipeline before starting migration. Missing stages or steps will produce an incomplete v1 pipeline. - Verify all expressions are converted from `<+...>` to `${{ }}` format. - Compare the v0 and v1 outputs to confirm no functionality was lost in translation. ## Troubleshooting ### Unsupported v0 Features - Some v0-specific step types may not have v1 equivalents yet - Complex failure strategies may need manual adjustment - Custom stage types require careful mapping ### Validation Errors After Migration - Re-validate expression syntax - Check all resource references still resolve - Verify variable types are compatible
Auf GitHub ansehen