Skip to content

Latest commit

 

History

History
84 lines (57 loc) · 2.06 KB

File metadata and controls

84 lines (57 loc) · 2.06 KB

Contributing to SSOmatic

Thank you for your interest in contributing! This guide will help you get started.

Prerequisites

  • Bun >= 1.0.0
  • AWS CLI configured with SSO profiles (for testing)
  • Git

Development Setup

git clone https://github.com/tux86/ssomatic.git
cd ssomatic
bun install

# Run CLI
bun run start

# Run web UI (dev mode)
bun run dev

# Lint
bun run lint

Project Structure

ssomatic/
├── src/
│   ├── aws/           # Shared AWS credential logic
│   ├── cli/           # Terminal UI (React/Ink) + entry point
│   └── web/
│       ├── server.ts  # Bun HTTP server + RPC bridge
│       └── client/    # Web UI (React/Vite/Tailwind)
├── .github/           # Workflows and templates
└── package.json

Commit Convention

We use Conventional Commits:

type(scope): description

Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert

Scopes: cli, web, aws, deps, ci

Commits are validated by commitlint via a Git hook.

Releases

Releases are fully automated via semantic-release. When commits land on main, the CI pipeline determines the version bump from commit types (feat → minor, fix → patch) and creates a GitHub release with the binary attached. No manual steps needed.

Pull Request Process

  1. Fork the repo and create a branch from main
  2. Make your changes with conventional commits
  3. Ensure bun run lint passes
  4. Open a PR using the provided template

Code Style

  • TypeScript strict mode
  • React functional components with hooks
  • Business logic in src/aws/sso.ts (UI-agnostic)
  • CLI components use Ink; web components use React/Tailwind

Building

bun run build

# Output: dist/ssomatic + dist/web/

Questions?

Open an issue or start a discussion.