Getting Started with the CLI
The Rafter CLI provides a simple command-line interface for running security scans on your repositories. This guide covers the essential concepts and basic workflows.Core Concepts
How Do I get My API Key?
To use the Rafter CLI or API, you need an API key. Sign up and get your API key from your account page.Your API key starts with
RF
and should be kept secure. Never commit it to version control (e.g. GitHub). Use environment variables instead.What Does the CLI Do?
The Rafter CLI allows you to:- Trigger scans of your remote repositories
- Retrieve results from completed scans
- Check usage and quota information
- Automate security workflows in scripts and CI/CD
How Does Scanning Work?
The CLI scans remote repositories (e.g., on GitHub), not your local files. It can use your local Git configuration to determine which repository and branch to scan.
- The CLI detects your repository and branch from Git
- It uploads your code securely to Rafter’s scanning engine
- The engine analyzes your code for vulnerabilities and security issues
- It deletes your code from Rafter’s scanning engine
- Results are returned and displayed in your terminal
Basic Commands
Make sure you configure an environment variable or pass in your
RAFTER API_KEY
with the flag --api-key
or -k
(more details below).Start a Scan with rafter run
The most common command for running security scans are below. They auto-detect the repo and branch and require an environment variable RAFTER_API_KEY
:
Retrieve Results with rafter get
Get results from a completed scan:
Check Quota with rafter usage
Check your API usage and remaining scans:
Basic Workflow
Here’s a typical workflow for running your first scan:1. Install the CLI
2. Set Your API Key
3. Run a Scan
4. Check Results
The CLI will display scan results directly in your terminal, showing:- Vulnerabilities found with severity levels
- File locations where issues were detected
- Recommendations for fixing the issues
Output Formats
The CLI supports multiple output formats for different use cases:JSON Format (Default)
- Automation and scripting
- Integration with other tools
- Parsing with tools like
jq
Markdown Format
- Human-readable reports
- Documentation and sharing
- GitHub issues and pull requests