
Запускает Trivy как действие GitHub для сканирования вашего образа Docker контейнера на уязвимости
GitHub Action для Trivy
[![GitHub Release][release-img]][release] [![GitHub Marketplace][marketplace-img]][marketplace] [![License][license-img]][license]

name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4 - name: Build an image from Dockerfile run: docker build -t docker.io/my-organization/my-app:${{ github.sha }} . - name: Run Trivy vulnerability scanner uses: aquasecurity/[email protected] with: image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}' format: 'table' exit-code: '1' ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH'
### Сканирование CI конвейера (с Trivy Config)```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner in fs mode
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
scan-ref: '.'
trivy-config: trivy.yaml
В данном случае trivy.yaml — это YAML-конфигурация, которая включена в состав репозитория. Подробная информация доступна на сайте Trivy, но пример выглядит следующим образом:```yaml
format: json
exit-code: 1
severity: CRITICAL
secret:
config: config/trivy/secret.yaml
Все параметры можно определить в файле `trivy.yaml`. Указание отдельных параметров через action оставлено для обратной совместимости. Определение следующих параметров обязательно, так как их нельзя задать через файл конфигурации:
- `scan-ref`: Если используется сканирование `fs, repo`.
- `image-ref`: Если используется сканирование `image`.
- `scan-type`: Для определения типа сканирования, например `image`, `fs`, `repo` и т.д.
#### Порядок приоритета параметров
Trivy использует [Viper](https://github.com/spf13/viper), который имеет определённый порядок приоритета для параметров. Порядок следующий:
- Флаг GitHub Action
- Переменная окружения
- Файл конфигурации
- По умолчанию
### Кеш
Действие имеет встроенную функциональность для кеширования и восстановления [базы данных уязвимостей](https://github.com/aquasecurity/trivy-db), [базы данных Java](https://github.com/aquasecurity/trivy-java-db) и [набора проверок](https://github.com/aquasecurity/trivy-checks), если они загружаются во время сканирования.
Кеш по умолчанию хранится в каталоге `$GITHUB_WORKSPACE/.cache/trivy`.
Кеш восстанавливается перед началом сканирования и сохраняется после его завершения.
Под капотом используется [actions/cache](https://github.com/actions/cache), но требуется меньше настроек конфигурации.
Параметр `cache` является необязательным, и кеширование включено по умолчанию.
#### Отключение кеширования
Если вы хотите отключить кеширование, установите входной параметр `cache` в `false`, но мы рекомендуем оставить его включённым, чтобы избежать проблем с ограничением частоты запросов.```yaml
- name: Run Trivy scanner without cache
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
scan-ref: '.'
cache: 'false'
Обратите внимание, что в GitHub Actions существуют ограничения на доступ к кэшу между ветками.
По умолчанию рабочий процесс может получить доступ и восстановить кэш, созданный либо в текущей ветке, либо в ветке по умолчанию (обычно main или master).
Если вам нужно делиться кэшами между ветками, вам может потребоваться создать кэш в ветке по умолчанию и восстановить его в текущей ветке.
Чтобы оптимизировать рабочий процесс, вы можете настроить задачу cron для регулярного обновления кэша в ветке по умолчанию. Это позволит последующим сканированиям использовать кэшированную базу данных без повторной загрузки.```yaml
name: Update Trivy Cache
on: schedule: - cron: '0 0 * * *' # Run daily at midnight UTC workflow_dispatch: # Allow manual triggering
jobs: update-trivy-db: runs-on: ubuntu-latest steps: - name: Setup oras uses: oras-project/setup-oras@v1
- name: Get current date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Download and extract the vulnerability DB
run: |
mkdir -p $GITHUB_WORKSPACE/.cache/trivy/db
oras pull ghcr.io/aquasecurity/trivy-db:2
tar -xzf db.tar.gz -C $GITHUB_WORKSPACE/.cache/trivy/db
rm db.tar.gz
- name: Download and extract the Java DB
run: |
mkdir -p $GITHUB_WORKSPACE/.cache/trivy/java-db
oras pull ghcr.io/aquasecurity/trivy-java-db:1
tar -xzf javadb.tar.gz -C $GITHUB_WORKSPACE/.cache/trivy/java-db
rm javadb.tar.gz
- name: Cache DBs
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/.cache/trivy
key: cache-trivy-${{ steps.date.outputs.date }}
При запуске сканирования установите переменные окружения `TRIVY_SKIP_DB_UPDATE` и `TRIVY_SKIP_JAVA_DB_UPDATE`, чтобы пропустить процесс загрузки.```yaml
- name: Run Trivy scanner without downloading DBs
uses: aquasecurity/[email protected]
with:
scan-type: 'image'
scan-ref: 'myimage'
env:
TRIVY_SKIP_DB_UPDATE: true
TRIVY_SKIP_JAVA_DB_UPDATE: true
По умолчанию действие вызывает aquasecurity/setup-trivy в качестве первого шага,
который устанавливает версию trivy, указанную во входном параметре version. Если вы уже установили trivy другим способом,
например, вызвав aquasecurity/setup-trivy напрямую, или запускаете это действие несколько раз, вы можете использовать
входной параметр skip-setup-trivy, чтобы отключить этот шаг.
name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4
- name: Manual Trivy Setup
uses: aquasecurity/[email protected]
with:
cache: true
version: v0.72.0
- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL'
skip-setup-trivy: true
#### Пропуск установки при многократном вызове Trivy Action
Другой распространенный случай использования — когда сборка вызывает это действие несколько раз; в этом случае мы можем установить `skip-setup-trivy` в `true` при последующих вызовах, например:```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
test:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Check out Git repository
uses: actions/checkout@v4
# The first call to the action will invoke setup-trivy and install trivy
- name: Generate Trivy Vulnerability Report
uses: aquasecurity/[email protected]
with:
scan-type: "fs"
output: trivy-report.json
format: json
scan-ref: .
exit-code: 0
- name: Upload Vulnerability Scan Results
uses: actions/upload-artifact@v4
with:
name: trivy-report
path: trivy-report.json
retention-days: 30
- name: Fail build on High/Criticial Vulnerabilities
uses: aquasecurity/[email protected]
with:
scan-type: "fs"
format: table
scan-ref: .
severity: HIGH,CRITICAL
ignore-unfixed: true
exit-code: 1
# On a subsequent call to the action we know trivy is already installed so can skip this
skip-setup-trivy: true
GitHub Enterprise Server (GHES) использует недействительный github.token для https://github.com сервера.
Поэтому вы не можете установить Trivy с помощью действия setup-trivy.
Чтобы исправить эту проблему, вам необходимо переопределить токен для setup-trivy с помощью входного параметра token-setup-trivy:```yaml
- name: Run Trivy scanner without cache
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
scan-ref: '.'
token-setup-trivy: ${{ secrets.GITHUB_PAT }}
У GitHub даже есть [create-github-app-token](https://github.com/actions/create-github-app-token) для подобных случаев.
### Сканирование Tarball```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Generate tarball from image
run: |
docker pull <your-docker-image>
docker save -o vuln-image.tar <your-docker-image>
- name: Run Trivy vulnerability scanner in tarball mode
uses: aquasecurity/[email protected]
with:
input: /github/workspace/vuln-image.tar
severity: 'CRITICAL,HIGH'
Действие поддерживает [Trivy templates][trivy-templates].
Используйте входной параметр template, чтобы указать путь (не забудьте добавить префикс @ к пути) к файлу шаблона.```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
scan-type: "fs"
scan-ref: .
format: 'template'
template: "@path/to/my_template.tpl"
#### Шаблоны по умолчанию
Trivy имеет [шаблоны по умолчанию][trivy-default-templates].
По умолчанию `setup-trivy` устанавливает их в каталог `$HOME/.local/bin/trivy-bin/contrib`.```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
scan-type: "fs"
scan-ref: .
format: 'template'
template: "@$HOME/.local/bin/trivy-bin/contrib/html.tpl"
Если у вас доступно сканирование кода GitHub, вы можете использовать Trivy в качестве инструмента сканирования следующим образом:```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4
- name: Build an image from Dockerfile
run: |
docker build -t docker.io/my-organization/my-app:${{ github.sha }} .
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
Вы можете найти более подробный пример здесь: https://github.com/aquasecurity/trivy-sarif-demo/blob/master/.github/workflows/scan.yml
Если вы хотите загрузить результаты SARIF в GitHub Code scanning даже при ненулевом коде выхода из Trivy Scan, вы можете добавить следующее в ваш шаг загрузки:```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
permissions:
contents: read # Required to checkout and read repo files
security-events: write # Required to upload SARIF files to Security tab
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build an image from Dockerfile
run: |
docker build -t docker.io/my-organization/my-app:${{ github.sha }} .
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
if: always()
with:
sarif_file: 'trivy-results.sarif'
Подробнее см. здесь: https://docs.github.com/en/actions/learn-github-actions/expressions#always
Также можно сканировать ваши git-репозитории с помощью встроенного сканирования репозиториев Trivy. Это может быть полезно, если вы хотите запускать Trivy в качестве проверки во время сборки для каждого PR, открываемого в вашем репозитории. Это помогает выявить потенциальные уязвимости, которые могут быть внесены с каждым PR.
Если у вас доступно сканирование кода GitHub, вы можете использовать Trivy как инструмент сканирования следующим образом:```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
### Использование Trivy для сканирования каталогов rootfs
Также можно сканировать каталоги rootfs с помощью встроенного в Trivy сканера rootfs. Это может быть удобно, если вы хотите запускать Trivy как проверку во время сборки для каждого PR, открываемого в вашем репозитории. Это помогает выявить потенциальные уязвимости, которые могут быть внесены с каждым PR.
Если у вас есть [сканирование кода GitHub](https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning), вы можете использовать Trivy как инструмент сканирования следующим образом:```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
permissions:
contents: read # Required to checkout and read repo files
security-events: write # Required to upload SARIF files to Security tab
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner with rootfs command
uses: aquasecurity/[email protected]
with:
scan-type: 'rootfs'
scan-ref: 'rootfs-example-binary'
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
Также вы можете сканировать свои IaC-репозитории с помощью встроенного сканирования репозиториев Trivy. Это может быть полезно, если вы хотите запускать Trivy в качестве проверки времени сборки для каждого PR, открываемого в вашем репозитории. Это помогает выявлять потенциальные уязвимости, которые могут быть внесены с каждым PR.
Если у вас доступно GitHub code scanning, вы можете использовать Trivy в качестве инструмента сканирования следующим образом:```yaml name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 permissions: contents: read # Required to checkout and read repo files security-events: write # Required to upload SARIF files to Security tab steps: - name: Checkout code uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner in IaC mode
uses: aquasecurity/[email protected]
with:
scan-type: 'config'
hide-progress: true
format: 'sarif'
output: 'trivy-results.sarif'
exit-code: '1'
severity: 'CRITICAL,HIGH'
- name: Upload Trivy scan results to GitHub Security tab
if: always()
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
**Примечание**: Если ваша конфигурация Terraform содержит частные модули, настройте Git для аутентификации с репозиторием, в котором они размещены.
Это можно сделать, добавив шаг в ваш CI-процесс, который настраивает доступ, например, используя Personal Access Token (PAT) или SSH-ключи:```yaml
- name: Configure Git for private modules
run: |
git config --global url."https://$GITHUB_USER:[email protected]/".insteadOf "https://github.com/"
env:
GITHUB_USER: ${{ github.actor }}
PRIVATE_REPO_TOKEN: ${{ secrets.PRIVATE_REPO_TOKEN }}
Это гарантирует, что Trivy может загружать закрытые модули.
Trivy может создать SBOM ваших зависимостей и отправить их потребителю, такому как GitHub Dependency Graph.
Функция отправки SBOM в GitHub доступна только в том случае, если у вас в репозитории включён GitHub Dependency Graph.
GITHUB_TOKEN):```yamlname: Generate SBOM on: push: branches: - main
permissions: contents: write
jobs: generate-sbom: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4
- name: Run Trivy in GitHub SBOM mode and submit results to Dependency Graph
uses: aquasecurity/[email protected]
with:
scan-type: 'fs'
format: 'github'
output: 'dependency-results.sbom.json'
scan-ref: '.'
github-pat: ${{ secrets.GITHUB_TOKEN }} # or ${{ secrets.github_pat_name }} if you're using a PAT
При сканировании образов вам может понадобиться разобрать фактический выходной JSON, так как Github Dependency не показывает все детали, например, путь к файлу каждой зависимости.
Вы можете загрузить отчёт как артефакт и скачать его, например, с помощью [действия upload-artifact](https://github.com/actions/upload-artifact):```yaml
---
name: Generate SBOM
on:
push:
branches:
- main
## GITHUB_TOKEN authentication, add only if you're not going to use a PAT
permissions:
contents: write
jobs:
generate-sbom:
runs-on: ubuntu-latest
steps:
- name: Scan image in a private registry
uses: aquasecurity/[email protected]
with:
image-ref: "private_image_registry/image_name:image_tag"
scan-type: image
format: 'github'
output: 'dependency-results.sbom.json'
github-pat: ${{ secrets.GITHUB_TOKEN }} # or ${{ secrets.github_pat_name }} if you're using a PAT
severity: "MEDIUM,HIGH,CRITICAL"
scanners: "vuln"
env:
TRIVY_USERNAME: "image_registry_admin_username"
TRIVY_PASSWORD: "image_registry_admin_password"
- name: Upload trivy report as a Github artifact
uses: actions/upload-artifact@v4
with:
name: trivy-sbom-report
path: '${{ github.workspace }}/dependency-results.sbom.json'
retention-days: 20 # 90 is the default
Также можно сканировать ваш приватный реестр с помощью встроенного сканирования образов Trivy. Всё, что нужно сделать, — установить переменные окружения.
Для Docker Hub требуются TRIVY_USERNAME и TRIVY_PASSWORD.
При загрузке из публичного репозитория устанавливать переменные окружения не нужно.```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
permissions:
contents: read # Required to checkout and read repo files
security-events: write # Required to upload SARIF results to the GitHub Security tab
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
env:
TRIVY_USERNAME: Username
TRIVY_PASSWORD: Password
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
#### AWS ECR (Elastic Container Registry)
Trivy использует AWS SDK. Вам не нужно устанавливать `aws` CLI.
Вы можете использовать [переменные окружения AWS CLI][env-var].
[env-var]: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html%60%60%60yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
permissions:
contents: read # Required to checkout and read repo files
security-events: write # Required to upload SARIF files to Security tab
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: 'aws_account_id.dkr.ecr.region.amazonaws.com/imageName:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
env:
AWS_ACCESS_KEY_ID: key_id
AWS_SECRET_ACCESS_KEY: access_key
AWS_DEFAULT_REGION: us-west-2
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
Trivy использует Google Cloud SDK. Вам не нужно устанавливать команду gcloud.
Если вы хотите использовать репозиторий целевого проекта, вы можете настроить его через GOOGLE_APPLICATION_CREDENTIALS.```yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
permissions:
contents: read # Required to checkout and read repo files
security-events: write # Required to upload SARIF files to Security tab
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
env:
GOOGLE_APPLICATION_CREDENTIALS: /path/to/credential.json
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
#### Самостоятельный хостинг
Серверу BasicAuth требуются `TRIVY_USERNAME` и `TRIVY_PASSWORD`.
если вы хотите использовать порт 80, используйте NonSSL `TRIVY_NON_SSL=true````yaml
name: build
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-24.04
permissions:
contents: read # Required to checkout and read repo files
security-events: write # Required to upload SARIF files to Security tab
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/[email protected]
with:
image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}'
format: 'sarif'
output: 'trivy-results.sarif'
env:
TRIVY_USERNAME: Username
TRIVY_PASSWORD: Password
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: 'trivy-results.sarif'
Также можно просмотреть результат сканирования в сводке рабочего процесса.
Этот шаг особенно полезен для частных репозиториев без лицензии GitHub Advanced Security.```yaml
name: Run Trivy scanner uses: aquasecurity/[email protected] with: scan-type: config hide-progress: true output: trivy.txt
name: Publish Trivy Output to Summary run: | if [[ -s trivy.txt ]]; then { echo "### Security Output" echo "
terraform' cat trivy.txt echo ''
echo "## Настройка
Приоритет конфигурации:
- [Входные параметры](#inputs)
- [Переменные окружения](#environment-variables)
- [Файл конфигурации Trivy](#trivy-config-file)
- Значения по умолчанию
### Входные параметры
Следующие входные параметры могут использоваться как ключи `step.with`:
| Имя | Тип | По умолчанию | Описание |
|------------------------------|---------|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `scan-type` | String | `image` | Тип сканирования, например `image` или `fs` |
| `input` | String | | Ссылка на tar-архив, например `alpine-latest.tar` |
| `image-ref` | String | | Ссылка на образ, например `alpine:3.10.2` |
| `scan-ref` | String | `/github/workspace/` | Ссылка для сканирования, например `/github/workspace/` или `.` |
| `format` | String | `table` | Формат вывода (`table`, `json`, `template`, `sarif`, `cyclonedx`, `spdx`, `spdx-json`, `github`, `cosign-vuln`) |
| `template` | String | | Шаблон вывода (`@$HOME/.local/bin/trivy-bin/contrib/gitlab.tpl`, `@$HOME/.local/bin/trivy-bin/contrib/junit.tpl`) |
| `tf-vars` | String | | Путь к файлу переменных Terraform |
| `output` | String | | Сохранить результаты в файл |
| `exit-code` | String | `0` | Код возврата при обнаружении указанных уязвимостей |
| `ignore-unfixed` | Boolean | false | Игнорировать незакрытые/неисправленные уязвимости |
| `vuln-type` | String | `os,library` | Типы уязвимостей (os,library) |
| `severity` | String | `UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL` | Уровни серьезности уязвимостей для поиска и отображения |
| `skip-dirs` | String | | Список каталогов, в которых пропускается обход, разделенный запятыми |
| `skip-files` | String | | Список файлов, в которых пропускается обход, разделенный запятыми |
| `cache-dir` | String | `$GITHUB_WORKSPACE/.cache/trivy` | Каталог кэша. ПРИМЕЧАНИЕ: это значение нельзя настроить через `trivy.yaml`. |
| `timeout` | String | `5m0s` | Тайм-аут сканирования |
| `ignore-policy` | String | | Фильтрация уязвимостей с помощью языка OPA Rego |
| `hide-progress` | String | `false` | Отключить индикатор выполнения и вывод журнала |
| `list-all-pkgs` | String | | Вывести все пакеты независимо от уязвимости |
| `scanners` | String | `vuln,secret` | Список типов проверок безопасности через запятую (`vuln`,`secret`,`misconfig`,`license`) |
| `trivyignores` | String | | Список относительных путей внутри репозитория к одному или нескольким файлам `.trivyignore`, разделенных запятыми, или один файл `.trivyignore.yaml`. |
| `trivy-config` | String | | Путь к конфигурационному файлу trivy.yaml |
| `github-pat` | String | | Токен аутентификации для отправки результатов сканирования SBOM в граф зависимостей GitHub. Может быть либо личным токеном доступа GitHub (PAT), либо GITHUB_TOKEN |
| `limit-severities-for-sarif` | Boolean | false | По умолчанию формат *SARIF* выводит все уязвимости независимо от настроенных уровней серьезности. Чтобы переопределить это поведение, установите параметр **true** |
| `docker-host` | String | | По умолчанию установлено `unix://var/run/docker.sock`, но может быть изменено для помощи с контейнеризированной инфраструктурой (требуется `unix:/` или другой префикс) |
| `version` | String | `v0.72.0` | Версия Trivy для использования, например `latest` или `v0.72.0` |
| `skip-setup-trivy` | Boolean | false | Пропустить вызов действия `setup-trivy` для установки `trivy` |
| `token-setup-trivy` | Boolean | | Переопределить `github.token`, используемый `setup-trivy` для клонирования репозитория `trivy` |
### Переменные окружения
Вы можете использовать [переменные окружения Trivy][trivy-env] для установки необходимых параметров (включая флаги, которые не поддерживаются [Входными параметрами](#inputs), такие как `--secret-config`).
**Примечание:** В некоторых старых версиях Action была ошибка, из-за которой входные параметры из одного вызова Action просачивались
в последующие вызовы Action. Это могло приводить к тому, что рабочие процессы, вызывающие Action несколько раз, например для
выполнения нескольких сканирований или для тех же сканирований с разными форматами вывода, не давали желаемого результата. Вы можете проверить,
является ли это вашим случаем, посмотрев информацию о шаге GitHub Actions: если в разделе `env`, показанном в выводе вашего Actions,
содержатся переменные окружения `TRIVY_*`, которые вы явно не задавали, возможно, вы подвержены этой ошибке и должны
обновиться до последней версии Action.
### Файл конфигурации Trivy
При использовании `trivy-config` [Входного параметра](#inputs) вы можете задавать параметры через [файл конфигурации Trivy][trivy-config] (включая флаги, которые не поддерживаются [Входными параметрами](#inputs), такие как `--secret-config`).
[release]: https://github.com/aquasecurity/trivy-action/releases/latest
[release-img]: https://img.shields.io/github/release/aquasecurity/trivy-action.svg?logo=github
[marketplace]: https://github.com/marketplace/actions/aqua-security-trivy
[marketplace-img]: https://img.shields.io/badge/marketplace-trivy--action-blue?logo=github
[license]: https://raw.githubusercontent.com/aquasecurity/trivy-action/master/LICENSE
[license-img]: https://img.shields.io/github/license/aquasecurity/trivy-action
[trivy-env]: https://aquasecurity.github.io/trivy/latest/docs/configuration/#environment-variables
[trivy-config]: https://aquasecurity.github.io/trivy/latest/docs/references/configuration/config-file/
[trivy-templates]: https://aquasecurity.github.io/trivy/latest/docs/configuration/reporting/#template
[trivy-default-templates]: https://aquasecurity.github.io/trivy/latest/docs/configuration/reporting/#template