Wire up the one-shot translation UX matching the upstream GitLab skill: paste a workflow, get YAML + a Markdown report on stdout.
npx @intentius/chant-lexicon-gitlab migrate path/to/workflow.yml
npx @intentius/chant-lexicon-gitlab migrate .github/workflows/ --output .gitlab-ci.yml
Pipeline: GitHubActionsParser.parse → GitHubToGitLabTransformer.transform (#85) → existing GitLab serializer → .gitlab-ci.yml. The Markdown report (a four-column table: Source / Category / GitLab equivalent / Notes) always goes to stdout.
Also expose as chant migrate --from github --to gitlab <path> once @intentius/chant is installed — both invocations call the same code.
Done when
Depends on: #85. Blocks: #87, #89, #90, #91, #92, #93, #95, #96.
Wire up the one-shot translation UX matching the upstream GitLab skill: paste a workflow, get YAML + a Markdown report on stdout.
Pipeline:
GitHubActionsParser.parse→GitHubToGitLabTransformer.transform(#85) → existing GitLab serializer →.gitlab-ci.yml. The Markdown report (a four-column table: Source / Category / GitLab equivalent / Notes) always goes to stdout.Also expose as
chant migrate --from github --to gitlab <path>once@intentius/chantis installed — both invocations call the same code.Done when
lexicons/gitlab/src/migrate-cli.ts, registered as abininpackage.json.chant migrate --from github --to gitlabdispatches to it from the core CLI.lexicons/github/examples/— produces a Markdown report and a.gitlab-ci.ymlthat parses.--output -(stdin/stdout) supported for piping.migrate-cli.test.tscovers the CLI surface.Depends on: #85. Blocks: #87, #89, #90, #91, #92, #93, #95, #96.