Skip to content

feat: Phase 1 — CLI skeleton + typed client + auth login + get commands #3

Description

@2000game

Phase 1 — CLI skeleton + typed client + auth login + get. The first immediately-useful slice.

Part of #1.

Scope

  • Bootstrap the TS project: Node + TypeScript, CLI framework (oclif or commander), tsconfig, ESLint/Prettier, Vitest, CI (GitHub Actions).
  • Layer 0 — Auth/HTTP: login-token handling, session cookie + CSRF, auto re-login, rate-limit/retry. Store token in macOS Keychain (fallback .env).
  • ct auth login — capture personal token, verify, persist to Keychain.
  • Layer 1 — Typed client: generate from OpenAPI (openapi-typescript + openapi-fetch); script to regenerate on CT release.
  • Layer 2 — imperative get commands: ct get groups | campuses | group-types | … with basic filtering + JSON/table output.
  • README with install + usage.

Definition of done

  • ct auth login then ct get campuses returns live data from our CT instance.
  • Typed client compiles against the real spec; regeneration documented.
  • CI green (lint + typecheck + tests).

Distribution (stub, not blocking)

  • Homebrew tap eqrm/tap/ct or npm bin — wire up later; Phase 1 just needs a local ct binary.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions