Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ The ASH MCP server provides:
"ash": {
"command": "uvx",
"args": [
"--from=git+https://github.com/awslabs/automated-security-helper@v3.0.0",
"--from=git+https://github.com/awslabs/automated-security-helper@v3.4.1",
"ash",
"mcp"
],
Expand All @@ -243,7 +243,7 @@ The ASH MCP server provides:
"ash-security": {
"command": "uvx",
"args": [
"--from=git+https://github.com/awslabs/automated-security-helper@v3.0.0",
"--from=git+https://github.com/awslabs/automated-security-helper@v3.4.1",
"ash",
"mcp"
]
Expand All @@ -259,7 +259,7 @@ The ASH MCP server provides:
"ash": {
"command": "uvx",
"args": [
"--from=git+https://github.com/awslabs/automated-security-helper@v3.0.0",
"--from=git+https://github.com/awslabs/automated-security-helper@v3.4.1",
"ash",
"mcp"
],
Expand Down Expand Up @@ -359,7 +359,7 @@ Add this to your `.pre-commit-config.yaml`:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v3.0.0
rev: v3.4.1
hooks:
- id: ash-simple-scan
```
Expand Down
24 changes: 18 additions & 6 deletions README.md.template
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# ASH - Automated Security Helper

[![ASH - Core Pipeline](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-build-and-scan.yml/badge.svg)](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-build-and-scan.yml)
[![ASH - Matrix Unit Tests](https://github.com/awslabs/automated-security-helper/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/awslabs/automated-security-helper/actions/workflows/unit-tests.yml)
[![ASH - Core Pipeline](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-repo-scan.yml/badge.svg)](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-repo-scan.yml)
[![ASH - Unified CI](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-unified-ci.yml/badge.svg)](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-unified-ci.yml)
[![ASH - Install Methods](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-install-methods.yml/badge.svg)](https://github.com/awslabs/automated-security-helper/actions/workflows/ash-install-methods.yml)

## Table of Contents
- [Table of Contents](#table-of-contents)
Expand Down Expand Up @@ -109,6 +110,13 @@ function ash { uvx git+https://github.com/awslabs/automated-security-helper.git@
<details>
<summary>Click to expand other installation options</summary>

#### Using Homebrew (macOS/Linux)

```bash
brew tap awslabs/automated-security-helper https://github.com/awslabs/automated-security-helper.git
brew install ash
```

#### Using `pipx`

```bash
Expand Down Expand Up @@ -217,7 +225,7 @@ The ASH MCP server provides:
"ash": {
"command": "uvx",
"args": [
"--from=git+https://github.com/awslabs/automated-security-helper@v3.0.0",
"--from=git+https://github.com/awslabs/automated-security-helper@v{{VERSION}}",
"ash",
"mcp"
],
Expand All @@ -235,7 +243,7 @@ The ASH MCP server provides:
"ash-security": {
"command": "uvx",
"args": [
"--from=git+https://github.com/awslabs/automated-security-helper@v3.0.0",
"--from=git+https://github.com/awslabs/automated-security-helper@v{{VERSION}}",
"ash",
"mcp"
]
Expand All @@ -251,7 +259,7 @@ The ASH MCP server provides:
"ash": {
"command": "uvx",
"args": [
"--from=git+https://github.com/awslabs/automated-security-helper@v3.0.0",
"--from=git+https://github.com/awslabs/automated-security-helper@v{{VERSION}}",
"ash",
"mcp"
],
Expand Down Expand Up @@ -351,7 +359,7 @@ Add this to your `.pre-commit-config.yaml`:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v3.0.0
rev: v{{VERSION}}
hooks:
- id: ash-simple-scan
```
Expand All @@ -367,11 +375,15 @@ pre-commit run ash-simple-scan --all-files
ASH v3 produces several output files in the `.ash/ash_output/` directory:

- `ash_aggregated_results.json`: Complete machine-readable results including validation checkpoints
- `reports/ash.flat.json`: Flattened JSON array of findings for scripts and dashboards
- `reports/ash.sarif`: SARIF 2.1.0 report for IDE and CI/CD integration
- `reports/ash.summary.txt`: Human-readable text summary
- `reports/ash.summary.md`: Markdown summary for GitHub PRs and other platforms
- `reports/ash.html`: Interactive HTML report
- `reports/ash.csv`: CSV report for filtering and sorting findings

ASH also supports CycloneDX, SPDX, OCSF, GitLab SAST, JUnit XML, and YAML output. Enable any combination of reporters in your `.ash/ash.yaml` configuration. For the complete schema reference, consumption examples, and format details, see [Output Formats](https://awslabs.github.io/automated-security-helper/docs/output-formats/).

The `ash_aggregated_results.json` file includes comprehensive validation information that tracks scanner registration, enablement, execution, and result inclusion throughout the scan process. The Scanner Validation System can also generate detailed validation reports that provide comprehensive analysis of scanner states, validation checkpoints, dependency issues, and actionable recommendations for troubleshooting scan issues.

## FAQ
Expand Down
6 changes: 3 additions & 3 deletions docs/content/docs/advanced-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ print(f"Found {results.summary_stats.total_findings} findings")

## CI/CD Integration

> **Tip**: The examples below use pinned versions (`@v3.4.0`) for reproducibility. You can also use the `v3` floating tag (`@v3`) to always get the latest stable v3.x release, though pinned versions are recommended for CI/CD.
> **Tip**: The examples below use pinned versions (`@v3.4.1`) for reproducibility. You can also use the `v3` floating tag (`@v3`) to always get the latest stable v3.x release, though pinned versions are recommended for CI/CD.

### GitHub Actions

Expand All @@ -278,7 +278,7 @@ jobs:
with:
python-version: '3.10'
- name: Install ASH
run: pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
run: pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1
- name: Run ASH scan
run: ash --mode local
- name: Upload scan results
Expand All @@ -294,7 +294,7 @@ jobs:
ash-scan:
image: python:3.10
script:
- pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
- pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1
- ash --mode local
artifacts:
paths:
Expand Down
39 changes: 39 additions & 0 deletions docs/content/docs/advanced-usage.md.template
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,45 @@ ash --config-overrides 'global_settings.suppressions+=[{"rule_id": "RULE-123", "
ash --config-overrides 'global_settings.suppressions+=[{"rule_id": "RULE-456", "file_path": "src/*.js", "line_start": 10, "line_end": 15, "reason": "Known issue", "expiration": "2025-12-31"}]'
```

### Inline code suppressions

You can suppress individual findings directly in your source code using
special comments. This is useful when a suppression only applies to a
single line and you want the context to live next to the code.

Two directives are supported:

| Directive | Effect |
|-----------|--------|
| `# ash-ignore: <rule-id> [reason]` | Suppresses the finding on the **same line** as the comment. |
| `# ash-ignore-next-line: <rule-id> [reason]` | Suppresses the finding on the **next line**. |

The directives are case-insensitive. The reason text is optional but
recommended.

```python
# Suppress a specific rule on the same line:
password = os.environ["DB_PASS"] # ash-ignore: CKV-SEC-001 loaded from env, not hardcoded

# Suppress a specific rule on the next line:
# ash-ignore-next-line: BANDIT-B105 password variable is a placeholder
password = "changeme"
```

```javascript
// Languages that use // comments (JS, TS, Java, C#, Go):
const key = process.env.KEY; // ash-ignore: SEC-KEY env var is safe

// Or suppress the next line:
// ash-ignore-next-line: SEC-KEY env var is safe
const key = process.env.KEY;
```

Both inline and config-file suppressions use `Kind1.inSource` in the SARIF
output. They are distinguishable by their justification prefix: config
suppressions start with `"(ASH)"` while inline suppressions start with
`"(ASH inline)"`.

### Temporarily Ignoring Suppressions

```bash
Expand Down
16 changes: 8 additions & 8 deletions docs/content/docs/installation-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ASH v3 uses UV's tool isolation system to automatically manage most scanner depe
curl -sSf https://astral.sh/uv/install.sh | sh

# Create an alias for ASH
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.0"
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.1"

# Use as normal
ash --help
Expand All @@ -45,22 +45,22 @@ ash --help
irm https://astral.sh/uv/install.ps1 | iex

# Create a function for ASH
function ash { uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.0 $args }
function ash { uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.1 $args }

# Use as normal
ash --help
```

!!! tip "Floating tag `v3`"
We also maintain a `v3` floating tag that always points to the latest stable v3.x release. You can use `@v3` instead of a specific version to stay up to date automatically. Pin a specific version (e.g., `@v3.4.0`) when you need reproducible builds, such as in CI/CD pipelines.
We also maintain a `v3` floating tag that always points to the latest stable v3.x release. You can use `@v3` instead of a specific version to stay up to date automatically. Pin a specific version (e.g., `@v3.4.1`) when you need reproducible builds, such as in CI/CD pipelines.

#### 2. Using `pipx`

[`pipx`](https://pypa.github.io/pipx/) installs packages in isolated environments and makes their entry points available globally.

```bash
# Works on Windows, macOS, and Linux
pipx install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pipx install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1

# Use as normal
ash --help
Expand All @@ -72,7 +72,7 @@ Standard Python package installation:

```bash
# Works on Windows, macOS, and Linux
pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1

# Use as normal
ash --help
Expand All @@ -84,7 +84,7 @@ For development or if you want to modify ASH:

```bash
# Works on Windows, macOS, and Linux
git clone https://github.com/awslabs/automated-security-helper.git --branch v3.4.0
git clone https://github.com/awslabs/automated-security-helper.git --branch v3.4.1
cd automated-security-helper
pip install .

Expand Down Expand Up @@ -134,7 +134,7 @@ To upgrade ASH to the latest version:
### If installed with `uvx`
```bash
# Your alias will use the latest version when specified
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.0"
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.1"
```

### If installed with `pipx`
Expand All @@ -144,7 +144,7 @@ pipx upgrade automated-security-helper

### If installed with `pip`
```bash
pip install --upgrade git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pip install --upgrade git+https://github.com/awslabs/automated-security-helper.git@v3.4.1
```

### If installed from repository
Expand Down
10 changes: 5 additions & 5 deletions docs/content/docs/migration-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ export PATH="${PATH}:/path/to/automated-security-helper"

```bash
# Option 1: Using uvx (recommended) -- add to shell profile
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.0"
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.1"

# Option 2: Using pipx
pipx install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pipx install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1

# Option 3: Using pip
pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1
```

> **Tip**: You can also use the `v3` floating tag (`@v3`) instead of a specific version to always get the latest stable v3.x release. Pin a specific version for CI/CD or reproducible environments.
Expand Down Expand Up @@ -236,7 +236,7 @@ reporters:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v1.3.3
rev: v3.4.1
hooks:
- id: ash
```
Expand All @@ -248,7 +248,7 @@ repos:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v3.0.0
rev: v3.4.1
hooks:
- id: ash-simple-scan
```
Expand Down
4 changes: 2 additions & 2 deletions docs/content/docs/migration-guide.md.template
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ reporters:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v1.3.3
rev: v{{VERSION}}
hooks:
- id: ash
```
Expand All @@ -248,7 +248,7 @@ repos:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v3.0.0
rev: v{{VERSION}}
hooks:
- id: ash-simple-scan
```
Expand Down
12 changes: 6 additions & 6 deletions docs/content/docs/quick-start-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Prerequisites: Python 3.10+, [uv](https://docs.astral.sh/uv/getting-started/inst
curl -sSf https://astral.sh/uv/install.sh | sh

# Create an alias for ASH
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.0"
alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.1"
```

#### Windows PowerShell
Expand All @@ -34,25 +34,25 @@ alias ash="uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4
irm https://astral.sh/uv/install.ps1 | iex

# Create a function for ASH
function ash { uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.0 $args }
function ash { uvx git+https://github.com/awslabs/automated-security-helper.git@v3.4.1 $args }
```

> **Floating tag `v3`**: We also maintain a `v3` floating tag that always points to the latest stable v3.x release. You can use `@v3` instead of a specific version to stay up to date automatically. Pin a specific version (e.g., `@v3.4.0`) when you need reproducible builds.
> **Floating tag `v3`**: We also maintain a `v3` floating tag that always points to the latest stable v3.x release. You can use `@v3` instead of a specific version to stay up to date automatically. Pin a specific version (e.g., `@v3.4.1`) when you need reproducible builds.

### Option 2: Using pipx

Prerequisites: Python 3.10+, [pipx](https://pipx.pypa.io/stable/installation/)

```bash
pipx install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pipx install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1
```

### Option 3: Using pip

Prerequisites: Python 3.10+

```bash
pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.0
pip install git+https://github.com/awslabs/automated-security-helper.git@v3.4.1
```

## Basic Usage
Expand Down Expand Up @@ -189,7 +189,7 @@ Add this to your `.pre-commit-config.yaml`:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v3.0.0
rev: v3.4.1
hooks:
- id: ash-simple-scan
```
Expand Down
2 changes: 1 addition & 1 deletion docs/content/docs/quick-start-guide.md.template
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ Add this to your `.pre-commit-config.yaml`:
```yaml
repos:
- repo: https://github.com/awslabs/automated-security-helper
rev: v3.0.0
rev: v{{VERSION}}
hooks:
- id: ash-simple-scan
```
Expand Down
Loading
Loading