Skip to content

feat: chant migrate CLI (--emit yaml) #86

@lex00

Description

@lex00

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.parseGitHubToGitLabTransformer.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

  • New entry point at lexicons/gitlab/src/migrate-cli.ts, registered as a bin in package.json.
  • chant migrate --from github --to gitlab dispatches to it from the core CLI.
  • Works on every example in lexicons/github/examples/ — produces a Markdown report and a .gitlab-ci.yml that parses.
  • --output - (stdin/stdout) supported for piping.
  • migrate-cli.test.ts covers the CLI surface.

Depends on: #85. Blocks: #87, #89, #90, #91, #92, #93, #95, #96.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions