Skip to content

feat!: migrate Dev Center CLI to TypeScript Heroku oclif plugin#50

Merged
michaelmalave merged 64 commits into
mainfrom
feat/ruby-to-typescript
Apr 21, 2026
Merged

feat!: migrate Dev Center CLI to TypeScript Heroku oclif plugin#50
michaelmalave merged 64 commits into
mainfrom
feat/ruby-to-typescript

Conversation

@michaelmalave

@michaelmalave michaelmalave commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Replaces the legacy Ruby gem CLI with the npm Heroku plugin @heroku-cli/plugin-devcenter (oclif v4, ESM, TypeScript). Implements devcenter:open, devcenter:preview, devcenter:pull, and devcenter:push with a TypeScript client, preview server, and shared article resolution.
Authentication uses the Heroku CLI stack (this.heroku.getAuth() / @heroku-cli/command) instead of standalone netrc parsing.

  • Removes the Ruby gem layout (Gemfile, lib/, bin/devcenter, etc.),
  • Adds oclif bin/run tooling, CI (including coverage via c8), Dependabot/PR template updates,
  • Publishes as v2.0.0 with README/package metadata aligned to the released package.

Type of Change

  • fix: Bug fix or issue (patch semvar update)
  • feat!: Introduces a new feature to the codebase and removes the Ruby gem distribution (breaking change; major semver)
  • perf: Performance improvement
  • docs: Documentation only changes (README/command docs generated/updated as part of the migration; not docs-only PR overall)
  • tests: Adding missing tests or correcting existing tests
  • chore: Code cleanup tasks, dependency updates, or other changes (CI, Dependabot, repo hygiene)

If you want a single primary checkbox, use feat! and note the rest in Additional Context.

Verification

npm install
npm run build

Must be logged in with heroku login

heroku devcenter:pull slowdb
heroku devcenter:push slowdb
heroku devcenter:open slowdb
heroku devcenter:preview slowdb

CI should run the same build/test/lint path (pretest runs build; posttest runs lint).

Additional Context

  • User-facing breaking change: the Ruby gem and bin/devcenter workflow are removed; users install heroku plugins:install @heroku-cli/plugin-devcenter and run heroku devcenter:* (Node ≥22).
  • Auth: Heroku session/token via CLI (getAuth()), shared article-resolve for pull/open, client hardening (e.g. getJson invalid/empty body handling, pull debug logging without dumping full article JSON).
  • Repo: package rename to @heroku-cli/plugin-devcenter, .c8rc / 80% coverage expectations, .github/workflows, Dependabot, PR template; latest commit on branch aligns package.json / lockfile / README to v2.0.0 after publish.

Related Issue

Closes W-20888419

michaelmalave and others added 30 commits April 9, 2026 13:25
…stored lib unit tests, components inventory, npm/GitHub Actions Dependabot, and plugin usage updates to README
…etrc on Windows and .netrc elsewhere, matching netrc-parser
Co-authored-by: Katy Bowman <katy.bowman@salesforce.com>
Signed-off-by: Michael Malave <michael.malave@salesforce.com>
…, use ux.stdout, stub browser opens via sinon, add nock init, switch to shared ESLint config, and align tsconfig/package.json with CLI
…indentation and camelcase issues in unit tests
feat: Implement devcenter pull and push commands in oclif v4
…pace-only bodies as {}, and move devcenter:push’s debug init below its imports (with tests).
… only content length (plus existing metadata lines)
… article-resolve for pull and open, remove netrc-parser and netrc test helpers, and add a bin/run → run.js symlink for local invocations
@michaelmalave michaelmalave requested a review from a team as a code owner April 20, 2026 22:24
@michaelmalave michaelmalave changed the title Feat!: ruby to typescript feat!: migrate Dev Center CLI to TypeScript Heroku oclif plugin Apr 21, 2026

@tlowrimore-heroku tlowrimore-heroku left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

chore: bump to v2.0.0 and refresh readme after publish
@michaelmalave michaelmalave merged commit 5d6e6d0 into main Apr 21, 2026
12 checks passed
@michaelmalave michaelmalave deleted the feat/ruby-to-typescript branch April 21, 2026 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants