SHIP
v0.3.7High-velocity release verification written in Rust. Fast, zero-config pre-flight safety scanner that audits test suites, exposed secrets, uncommitted migrations, leftover debug logs, version synchronization, and changelogs before code reaches production or CI.
curl -sSL https://raw.githubusercontent.com/dominicOT/ship/master/scripts/install.sh | bash
Deep Security Scan
Deep scan across extended cloud credentials, git-tracked .env files, lockfile dependency advisories, and framework-aware authorization antipatterns.
Git Pre-Commit Hook
Install Ship as a team-shared .githooks/pre-commit hook with custom skip rules and persistent .ship.toml repository configuration.
Self-Update & Binaries
Keep your toolchain current with passive 24-hour update notices, automated in-place updating, and official binaries for Linux, macOS, and Windows.
| Module Name | Severity | Diagnostic Scope & Action |
|---|---|---|
| tests | CRITICAL | Executes the detected project test runner (cargo test, npm test, pytest, go test). Blocks deployment with a non-zero exit code upon test failure. |
| secrets | CRITICAL | Fast recursive scan for leaked private keys, hardcoded AWS keys, Slack webhooks, high-entropy tokens, and credentials. Gates deployment on detection. (See ship security for deep scan). |
| TODOs | NOTICE | Scans codebase for unresolved TODO, FIXME, HACK, and XXX markers with exact filenames and line numbers. |
| console.logs | NOTICE | Identifies residual debug prints and statement leaks: console.log, dbg!, print(, println!, and fmt.Println. |
| feature flags | NOTICE | Inspects configuration toggles, temporary launch gates, and feature flags to ensure unreleased flags are reviewed before production release. |
| version | NOTICE | Audits manifest version files (Cargo.toml, package.json, pyproject.toml) and warns if manifest version is out of sync with git tags. |
| migrations | NOTICE | Detects migration frameworks (Prisma, Diesel, Django, Alembic, Goose) and checks for uncommitted schema files or pending migrations. |
| changelog | NOTICE | Verifies presence of CHANGELOG.md and validates that release notes have been recorded since the last git release tag. |
Export comprehensive verification audits for CI/CD artifacts, compliance logs, GitHub pull request comments, or ingestion by autonomous AI coding agents:
ship --json --md # generates ship-report.json & ship-report.md ship --json out.json # custom JSON destination ship --md audit.md # custom Markdown destination
{
"project": {
"kind": "Rust",
"root": "/home/engineer/dev/rocket-guidance"
},
"results": [
{ "name": "tests", "status": "pass", "critical": true, "detail": "passed" },
{ "name": "secrets", "status": "pass", "critical": true, "detail": "none found" },
{ "name": "TODOs", "status": "pass", "critical": false, "detail": "none found" },
{ "name": "console.logs", "status": "pass", "critical": false, "detail": "none found" },
{ "name": "feature flags", "status": "pass", "critical": false, "detail": "detected (1 files)" },
{ "name": "version", "status": "pass", "critical": false, "detail": "0.3.7" },
{ "name": "migrations", "status": "skip", "critical": false, "detail": "none detected" },
{ "name": "changelog", "status": "pass", "critical": false, "detail": "CHANGELOG.md (up to date)" }
]
}
Configure CLI Options
Select desired flags to assemble your custom execution command:
ship