We have some news to share for the request index beta feature. We’ve added more options to sort your requests, counters to the individual filters and documentation for the search functionality. Checkout the blog post for more details.

File trivy-database-refresh.sh of Package scanner-databases.42526

#!/bin/bash

# Strict mode
set -euo pipefail

CHANGELOG_FILE="trivy-database.changes"
#TRIVY_IMAGE_REPOSITORIES="public.ecr.aws/aquasecurity/trivy:latest,aquasec/trivy:latest"
TRIVY_DATABASE_REPOSITORIES="public.ecr.aws/aquasecurity/trivy-db:2,aquasec/trivy-db:2,ghcr.io/aquasecurity/trivy-db:2"
TRIVY_JAVA_DATABASE_REPOSITORIES="public.ecr.aws/aquasecurity/trivy-java-db:1,aquasec/trivy-java-db:1,ghcr.io/aquasecurity/trivy-java-db:1"

# Helper functions
log() {
    echo >&2 "$@"
}
idempotent_tar() {
    tar "$@" --sort=name --owner=root:0 --group=root:0 --mtime="0" --format=gnu
}
dbversion() {
    jq -r .UpdatedAt "$@" | sed -E 's/[a-zA-Z.:-]//g' | cut -c 1-12
}

if ! which jq >/dev/null 2>&1; then
    log "Do not have jq on the system. Please install jq."
    exit 1
fi
if ! which trivy >/dev/null 2>&1; then
    log "Do not have trivy on the system. Please install recent trivy."
    exit 1
fi

log "Downloading / Refreshing database"

trivy image --download-db-only --db-repository "$TRIVY_DATABASE_REPOSITORIES"
trivy image --download-java-db-only --java-db-repository "$TRIVY_JAVA_DATABASE_REPOSITORIES"

# Get the current database version (the latest update datestring)
DB_VERSION="$(dbversion "$HOME/.cache/trivy/db/metadata.json")"
if [[ ! $DB_VERSION =~ ^[0-9]{12}$ ]]; then
    log "Invalid format for Trivy db version: $DB_VERSION"
    exit 1
fi
JAVA_DB_VERSION="$(dbversion "$HOME/.cache/trivy/java-db/metadata.json")"
if [[ ! $JAVA_DB_VERSION =~ ^[0-9]{12}$ ]]; then
    log "Invalid format for Trivy java-db version: $JAVA_DB_VERSION"
    exit 1
fi
if (( DB_VERSION > JAVA_DB_VERSION )); then
    TRIVY_DB_VERSION="$DB_VERSION"
else
    TRIVY_DB_VERSION="$JAVA_DB_VERSION"
fi

log "Found database version: $TRIVY_DB_VERSION"

SPEC_FILE=scanner-databases.spec
DATABASE_FILE="trivy-database-$TRIVY_DB_VERSION.tar.xz"

rm -f newspec
cat $SPEC_FILE | while read xline
do
	if echo $xline | grep -Eq "%define trivydbversion"  ; then
		if echo $xline | grep -Eq "trivydbversion\s*$TRIVY_DB_VERSION$" ; then
		log "The database is up-to-date"
		rm newspec
		exit
	    else
		echo "%define trivydbversion	$TRIVY_DB_VERSION" >> newspec
	    fi
        else
	    echo "$xline" >> newspec
	fi
done

if [ ! -f newspec ] ; then
	exit
fi
diff -u $SPEC_FILE newspec || true
mv newspec $SPEC_FILE

# remove old version
rm -f trivy-database-2*.tar.xz
# Compress trivy database in an idempotent .tar.xz archive
log "Compressing database"
idempotent_tar -Jcf "$DATABASE_FILE" -C "$HOME/.cache/trivy/" db java-db
openSUSE Build Service is sponsored by