Metadata-Version: 2.4
Name: forge-scaffold
Version: 0.1.1
Summary: CLI to scaffold new projects and set up CI/CD pipelines with company standards
Project-URL: Homepage, https://github.com/theo-mrn/Scaffolding_CLI
Project-URL: Repository, https://github.com/theo-mrn/Scaffolding_CLI
Author-email: theo <theo.morin1402@gmail.com>
License: MIT
Keywords: cd,ci,cli,devops,github-actions,scaffold
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Requires-Dist: httpx>=0.27.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pynacl>=1.5.0
Requires-Dist: questionary>=2.0.0
Requires-Dist: rich>=13.0.0
Requires-Dist: tomli-w>=1.0.0
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
Requires-Dist: typer>=0.12.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.14.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: respx>=0.21.0; extra == 'dev'
Description-Content-Type: text/markdown

# forge-scaffold

A CLI to scaffold new projects and set up enterprise-grade CI/CD pipelines with a single command.

## Install

```bash
pip install forge-scaffold
```

## Commands

### `forge init-ci`

Set up a CI/CD pipeline on an existing project.

```bash
cd my-project
forge init-ci
```

Detects your project type automatically (Python, FastAPI, Node, React, Go) and guides you through:

- **CI jobs** — lint, tests with coverage threshold, security scan, SonarCloud
- **CD jobs** — Docker build, push to Docker Hub, Trivy CVE scan, SBOM generation
- **Deploy** — SSH deploy to any server, with optional Caddy reverse proxy + automatic HTTPS
- **DNS** — manual instructions or automatic Cloudflare A record creation
- **Secrets** — pushes all credentials to GitHub automatically

### `forge init`

Scaffold a new project from scratch with company standards.

```bash
forge init
```

Creates the project structure, Dockerfile, .gitignore, README, and sets up the GitHub repository with branch protection.

### Supported project types

| Type    | Lint          | Test              | Security       |
|---------|---------------|-------------------|----------------|
| Python  | ruff / flake8 | pytest + coverage | pip-audit      |
| FastAPI | ruff / flake8 | pytest + httpx    | pip-audit      |
| Node    | ESLint        | jest / vitest     | npm audit      |
| React   | ESLint        | vitest / jest     | npm audit      |
| Go      | golangci-lint | go test           | govulncheck    |

## CI/CD pipeline example

```
ci.yml        lint → test → security → docker-build (optional)
cd.yml        build → push → trivy scan → SBOM → deploy via SSH
```

Every Docker image is tagged with `:latest`, `:sha-xxxxxxx`, and `:vX.Y.Z` on semver tags.

## Requirements

- Python 3.9+
- GitHub account (optional, for repo creation and secrets)
- Docker Hub account (optional, for image push)
