0
Fork 0
mirror of https://github.com/project-zot/zot.git synced 2024-12-16 21:56:37 -05:00

fix: reduce test run time (#1832)

Signed-off-by: Alexei Dodon <adodon@cisco.com>
This commit is contained in:
Alexei Dodon 2023-09-28 21:59:52 +03:00 committed by GitHub
parent ba6f347d8d
commit 3a9a932791
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 879 additions and 705 deletions

View file

@ -0,0 +1,21 @@
name: 'Check disk space'
description: 'Show available disk space'
runs:
using: "composite"
steps:
- shell: bash
if: always()
run: |
cd $GITHUB_WORKSPACE
set -x
df -h
sudo ls -lRh /tmp/* || true
sudo du -sh /tmp || true
sudo du -sh /tmp/* || true
sudo find /tmp/ -size +5M | sudo xargs ls -lh
du -sh ./* || true
find ./ -size +5M | xargs ls -lh
sudo du -sh /var/
sudo du -sh /var/lib/docker/
du -sh /home/runner/work/
set +x

View file

@ -0,0 +1,19 @@
name: 'Setup localstack service'
description: 'Download & run localstack container'
runs:
using: "composite"
steps:
- shell: bash
run: |
pip install localstack # Install LocalStack cli
docker pull localstack/localstack:2.2 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
localstack wait -t 30 # to become ready before timing out
echo "Startup complete"
aws dynamodb --endpoint-url http://localhost:4566 --region "us-east-2" create-table --table-name BlobTable --attribute-definitions AttributeName=Digest,AttributeType=S --key-schema AttributeName=Digest,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake

View file

@ -0,0 +1,8 @@
name: 'Stop localstack'
description: 'Stop localstack container'
runs:
using: "composite"
steps:
- shell: bash
if: always()
run: localstack stop

View file

@ -23,7 +23,6 @@ jobs:
run: |
cd $GITHUB_WORKSPACE
sudo apt-get update
sudo apt-get install -y libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config
mkdir -p test/data
cd test/data
../scripts/gen_certs.sh
@ -36,6 +35,6 @@ jobs:
for i in $(find . -type f \( -name "*.go" -not -name "*_test.go" -not -name "generated.go" \)); do
echo $i;
gobco -test '-tags=sync,search,scrub,metrics,containers_image_openpgp' $i;
gobco -test '-tags=minimal,containers_image_openpgp' $i;
gobco -test '-tags=containers_image_openpgp' $i;
done

103
.github/workflows/build.yaml vendored Normal file
View file

@ -0,0 +1,103 @@
on:
push:
branches:
- main
pull_request:
branches:
- main
release:
types:
- published
name: build
permissions: read-all
jobs:
build-arch:
name: Build ZOT multiarch
permissions:
contents: write
packages: write
runs-on: ubuntu-latest
strategy:
matrix:
os: [linux, darwin, freebsd]
arch: [amd64, arm64]
steps:
- name: Check out source code
uses: actions/checkout@v4
- uses: ./.github/actions/clean-runner
- name: Install go
uses: actions/setup-go@v4
with:
cache: false
go-version: 1.20.x
- name: Cache go dependencies
id: cache-go-dependencies
uses: actions/cache@v3
with:
path: |
~/go/pkg/mod
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mod-
- name: Cache go build output
id: cache-go-build
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
key: ${{ matrix.os }}-${{ matrix.arch }}-go-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ matrix.os }}-${{ matrix.arch }}-go-build-
- name: Install go dependencies
if: steps.cache-go-dependencies.outputs.cache-hit != 'true'
run: |
cd $GITHUB_WORKSPACE
go mod download
- name: Install other dependencies
run: |
cd $GITHUB_WORKSPACE
go install github.com/swaggo/swag/cmd/swag@v1.8.12
sudo apt-get update
sudo apt-get install rpm
sudo apt-get install snapd
sudo apt-get install libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config
git clone https://github.com/containers/skopeo -b v1.12.0 $GITHUB_WORKSPACE/src/github.com/containers/skopeo
cd $GITHUB_WORKSPACE/src/github.com/containers/skopeo && \
make bin/skopeo && \
sudo cp bin/skopeo /usr/bin && \
rm -rf $GITHUB_WORKSPACE/src/github.com/containers/skopeo
cd $GITHUB_WORKSPACE
curl -Lo notation.tar.gz https://github.com/notaryproject/notation/releases/download/v1.0.0-rc.4/notation_1.0.0-rc.4_linux_amd64.tar.gz
sudo tar xvzf notation.tar.gz -C /usr/bin notation
rm -f notation.tar.gz
- uses: ./.github/actions/check-diskspace
- name: Run build
timeout-minutes: 80
run: |
echo "Building for $OS:$ARCH"
cd $GITHUB_WORKSPACE
make binary binary-minimal binary-debug cli bench exporter-minimal
env:
OS: ${{ matrix.os }}
ARCH: ${{ matrix.arch }}
- uses: ./.github/actions/check-diskspace
- name: Generate GraphQL Introspection JSON on Release
if: github.event_name == 'release' && github.event.action == 'published' && matrix.os == 'linux' && matrix.arch == 'amd64'
run: |
bin/zot-linux-amd64 serve examples/config-search.json &
sleep 10
curl -X POST -H "Content-Type: application/json" -d @.pkg/debug/githubWorkflows/introspection-query.json http://localhost:5000/v2/_zot/ext/search | jq > bin/zot-gql-introspection-result.json
pkill zot
- if: github.event_name == 'release' && github.event.action == 'published'
name: Publish artifacts on releases
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: bin/z*
tag: ${{ github.ref }}
overwrite: true
file_glob: true

View file

@ -14,7 +14,7 @@ permissions: read-all
jobs:
client-tools:
name: Stateless zot with shared reliable storage
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
# services:
# minio:
# image: minio/minio:edge-cicd

View file

@ -51,15 +51,6 @@ jobs:
cache: false
go-version: 1.20.x
- name: Install dependencies
run: |
cd $GITHUB_WORKSPACE
go install github.com/swaggo/swag/cmd/swag@v1.8.12
go mod download
go install github.com/wadey/gocovmerge@latest
go get -u github.com/swaggo/swag/cmd/swag
go mod download
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2.21.8

View file

@ -36,11 +36,11 @@ jobs:
[[ $BINSIZE -eq $BINSIZE_MAIN ]] && echo "zot-minimal binary size is not affected by PR" && exit 0
if [[ $BINSIZE -gt $BINSIZE_MAIN ]]; then \
PERCENTAGE=$(echo "scale=2; (($BINSIZE-$BINSIZE_MAIN)*100)/$BINSIZE_MAIN" | bc); \
PERCENTAGE=$(printf '%.*f\n' 2 $(echo "scale=2; (($BINSIZE-$BINSIZE_MAIN)*100)/$BINSIZE_MAIN" | bc)); \
echo "zot minimal binary increased by $PERCENTAGE% comparing with main"; \
if ((`bc <<< "$PERCENTAGE>=1.0"`)); then exit 1; fi; \
else \
PERCENTAGE=$(echo "scale=2; (($BINSIZE_MAIN-$BINSIZE)*100)/$BINSIZE_MAIN" | bc); \
PERCENTAGE=$(printf '%.*f\n' 2 $(echo "scale=2; (($BINSIZE_MAIN-$BINSIZE)*100)/$BINSIZE_MAIN" | bc)); \
echo "zot minimal binary decreased by $PERCENTAGE% comparing with main"; \
fi
- if: always()
@ -61,11 +61,11 @@ jobs:
[[ $BINSIZE -eq $BINSIZE_MAIN ]] && echo "zb binary size is not affected by PR" && exit 0
if [[ $BINSIZE -gt $BINSIZE_MAIN ]]; then \
PERCENTAGE=$(echo "scale=2; (($BINSIZE-$BINSIZE_MAIN)*100)/$BINSIZE_MAIN" | bc); \
PERCENTAGE=$(printf '%.*f\n' 2 $(echo "scale=2; (($BINSIZE-$BINSIZE_MAIN)*100)/$BINSIZE_MAIN" | bc)); \
echo "zb binary increased by $PERCENTAGE% comparing with main"; \
if ((`bc <<< "$PERCENTAGE>=1.0"`)); then exit 1; fi; \
else \
PERCENTAGE=$(echo "scale=2; (($BINSIZE_MAIN-$BINSIZE)*100)/$BINSIZE_MAIN" | bc); \
PERCENTAGE=$(printf '%.*f\n' 2 $(echo "scale=2; (($BINSIZE_MAIN-$BINSIZE)*100)/$BINSIZE_MAIN" | bc)); \
echo "zb binary decreased by $PERCENTAGE% comparing with main"; \
fi
- if: always()
@ -86,10 +86,10 @@ jobs:
[[ $BINSIZE -eq $BINSIZE_MAIN ]] && echo "zli binary size is not affected by PR" && exit 0
if [[ $BINSIZE -gt $BINSIZE_MAIN ]]; then \
PERCENTAGE=$(echo "scale=2; (($BINSIZE-$BINSIZE_MAIN)*100)/$BINSIZE_MAIN" | bc); \
PERCENTAGE=$(printf '%.*f\n' 2 $(echo "scale=2; (($BINSIZE-$BINSIZE_MAIN)*100)/$BINSIZE_MAIN" | bc)); \
echo "zli binary increased by $PERCENTAGE% comparing with main"; \
if ((`bc <<< "$PERCENTAGE>=1.0"`)); then exit 1; fi; \
else \
PERCENTAGE=$(echo "scale=2; (($BINSIZE_MAIN-$BINSIZE)*100)/$BINSIZE_MAIN" | bc); \
PERCENTAGE=$(printf '%.*f\n' 2 $(echo "scale=2; (($BINSIZE_MAIN-$BINSIZE)*100)/$BINSIZE_MAIN" | bc)); \
echo "zli binary decreased by $PERCENTAGE% comparing with main"; \
fi

View file

@ -1,4 +1,3 @@
# .github/workflows/dco.yml
name: DCO
on:
pull_request:

View file

@ -22,7 +22,6 @@ jobs:
with:
cache: false
go-version: 1.20.x
- uses: ./.github/actions/clean-runner
- name: Install dependencies
run: |
cd $GITHUB_WORKSPACE
@ -54,21 +53,7 @@ jobs:
make bin/dex
./bin/dex serve $GITHUB_WORKSPACE/test/dex/config-dev.yaml &
cd $GITHUB_WORKSPACE
- name: Check disk space before build
run: |
cd $GITHUB_WORKSPACE
set -x
df -h
sudo ls -lRh /tmp/* || true
sudo du -sh /tmp || true
sudo du -sh /tmp/* || true
sudo find /tmp/ -size +5M | sudo xargs ls -lh
du -sh ./* || true
find ./ -size +5M | xargs ls -lh
sudo du -sh /var/
sudo du -sh /var/lib/docker/
du -sh /home/runner/work/
set +x
- uses: ./.github/actions/check-diskspace
- name: Run CI tests
run: |
make run-blackbox-ci
@ -76,7 +61,7 @@ jobs:
run: |
pip install --upgrade pyopenssl
pip install localstack awscli-local[ver1] # install LocalStack cli and awslocal
docker pull localstack/localstack # Make sure to pull the latest version of the image
docker pull localstack/localstack:2.2 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
@ -88,19 +73,5 @@ jobs:
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- name: Check disk space after build
if: always()
run: |
cd $GITHUB_WORKSPACE
set -x
df -h
sudo ls -lRh /tmp/* || true
sudo du -sh /tmp || true
sudo du -sh /tmp/* || true
sudo find /tmp/ -size +5M | sudo xargs ls -lh
du -sh ./* || true
find ./ -size +5M | xargs ls -lh
sudo du -sh /var/
sudo du -sh /var/lib/docker/
du -sh /home/runner/work/
set +x
- uses: ./.github/actions/check-diskspace
- uses: ./.github/actions/teardown-localstack

View file

@ -75,7 +75,7 @@ jobs:
run: |
cat /tmp/gc-bench-local.log
exit 1
gc-referrers-stress-s3:
name: GC(with referrers) on S3(minio) with short interval
runs-on: ubuntu-latest
@ -86,21 +86,7 @@ jobs:
with:
cache: false
go-version: 1.20.x
- name: Setup localstack service
run: |
pip install localstack # Install LocalStack cli
docker pull localstack/localstack:1.3 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
localstack wait -t 30 # to become ready before timing out
echo "Startup complete"
# aws --endpoint-url=http://localhost:4566 s3api create-bucket --bucket zot-storage --region us-east-2 --create-bucket-configuration="{\"LocationConstraint\": \"us-east-2\"}"
aws dynamodb --endpoint-url http://localhost:4566 --region "us-east-2" create-table --table-name BlobTable --attribute-definitions AttributeName=Digest,AttributeType=S --key-schema AttributeName=Digest,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- uses: ./.github/actions/setup-localstack
- name: Setup minio service
run: |
docker run -d -p 9000:9000 --name minio \
@ -164,6 +150,7 @@ jobs:
run: |
cat /tmp/gc-referrers-bench-s3.log
exit 1
- uses: ./.github/actions/teardown-localstack
gc-stress-s3:
name: GC(without referrers) on S3(minio) with short interval
@ -175,21 +162,7 @@ jobs:
with:
cache: false
go-version: 1.20.x
- name: Setup localstack service
run: |
pip install localstack # Install LocalStack cli
docker pull localstack/localstack:1.3 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
localstack wait -t 30 # to become ready before timing out
echo "Startup complete"
# aws --endpoint-url=http://localhost:4566 s3api create-bucket --bucket zot-storage --region us-east-2 --create-bucket-configuration="{\"LocationConstraint\": \"us-east-2\"}"
aws dynamodb --endpoint-url http://localhost:4566 --region "us-east-2" create-table --table-name BlobTable --attribute-definitions AttributeName=Digest,AttributeType=S --key-schema AttributeName=Digest,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- uses: ./.github/actions/setup-localstack
- name: Setup minio service
run: |
docker run -d -p 9000:9000 --name minio \
@ -253,3 +226,4 @@ jobs:
run: |
cat /tmp/gc-bench-s3.log
exit 1
- uses: ./.github/actions/teardown-localstack

View file

@ -20,7 +20,7 @@ jobs:
cache: false
go-version: '1.20'
- uses: actions/checkout@v4
- name: golangci-lint
- name: Run linter with GH action
uses: golangci/golangci-lint-action@v3
with:
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
@ -41,3 +41,6 @@ jobs:
# Optional: if set to true then the action don't cache or restore ~/.cache/go-build.
# skip-build-cache: true
- name: Run linter from make target
run: |
make check

View file

@ -38,7 +38,7 @@ jobs:
run: |
pip install --upgrade pyopenssl
pip install localstack awscli-local[ver1] # install LocalStack cli and awslocal
docker pull localstack/localstack # Make sure to pull the latest version of the image
docker pull localstack/localstack:2.2 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
@ -52,6 +52,8 @@ jobs:
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- uses: ./.github/actions/teardown-localstack
sync:
name: Sync harness
runs-on: ubuntu-latest
@ -81,21 +83,7 @@ jobs:
with:
cache: false
go-version: 1.20.x
- name: Setup localstack service
run: |
pip install localstack # Install LocalStack cli
docker pull localstack/localstack:1.3 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
localstack wait -t 30 # to become ready before timing out
echo "Startup complete"
aws --endpoint-url=http://localhost:4566 s3api create-bucket --bucket zot-storage --region us-east-2 --create-bucket-configuration="{\"LocationConstraint\": \"us-east-2\"}"
aws dynamodb --endpoint-url http://localhost:4566 --region "us-east-2" create-table --table-name BlobTable --attribute-definitions AttributeName=Digest,AttributeType=S --key-schema AttributeName=Digest,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- uses: ./.github/actions/setup-localstack
- name: Run zb
id: bench
@ -120,6 +108,7 @@ jobs:
run: |
cat /tmp/gc-referrers-bench-s3.log
exit 1
- uses: ./.github/actions/teardown-localstack
gc-stress-s3:
name: GC(without referrers) on S3(localstack) with short interval
@ -131,21 +120,7 @@ jobs:
with:
cache: false
go-version: 1.20.x
- name: Setup localstack service
run: |
pip install localstack # Install LocalStack cli
docker pull localstack/localstack:1.3 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
localstack wait -t 30 # to become ready before timing out
echo "Startup complete"
aws --endpoint-url=http://localhost:4566 s3api create-bucket --bucket zot-storage --region us-east-2 --create-bucket-configuration="{\"LocationConstraint\": \"us-east-2\"}"
aws dynamodb --endpoint-url http://localhost:4566 --region "us-east-2" create-table --table-name BlobTable --attribute-definitions AttributeName=Digest,AttributeType=S --key-schema AttributeName=Digest,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- uses: ./.github/actions/setup-localstack
- name: Run zb
id: bench
@ -170,3 +145,4 @@ jobs:
run: |
cat /tmp/gc-bench-s3.log
exit 1
- uses: ./.github/actions/teardown-localstack

View file

@ -1,178 +1,13 @@
on:
push:
branches:
- main
pull_request:
branches:
- main
release:
types:
- published
name: build-test
name: publish
permissions: read-all
jobs:
build-test-arch:
name: Build and test ZOT
permissions:
contents: write
packages: write
runs-on: ubuntu-latest
strategy:
matrix:
os: [linux, darwin, freebsd]
arch: [amd64, arm64]
steps:
- name: Check out source code
uses: actions/checkout@v4
- uses: ./.github/actions/clean-runner
- name: Install go
uses: actions/setup-go@v4
with:
cache: false
go-version: 1.20.x
- name: Cache go dependencies
id: cache-go-dependencies
uses: actions/cache@v3
with:
path: |
~/go/pkg/mod
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mod-
- name: Cache go build output
id: cache-go-build
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
key: ${{ matrix.os }}-${{ matrix.arch }}-go-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ matrix.os }}-${{ matrix.arch }}-go-build-
- name: Install go dependencies
if: steps.cache-go-dependencies.outputs.cache-hit != 'true'
run: |
cd $GITHUB_WORKSPACE
go mod download
- name: Install other dependencies
run: |
cd $GITHUB_WORKSPACE
go install github.com/swaggo/swag/cmd/swag@v1.8.12
sudo apt-get update
sudo apt-get install rpm
sudo apt-get install snapd
sudo apt-get install libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config
git clone https://github.com/containers/skopeo -b v1.12.0 $GITHUB_WORKSPACE/src/github.com/containers/skopeo
cd $GITHUB_WORKSPACE/src/github.com/containers/skopeo && \
make bin/skopeo && \
sudo cp bin/skopeo /usr/bin && \
rm -rf $GITHUB_WORKSPACE/src/github.com/containers/skopeo
cd $GITHUB_WORKSPACE
curl -Lo notation.tar.gz https://github.com/notaryproject/notation/releases/download/v1.0.0-rc.4/notation_1.0.0-rc.4_linux_amd64.tar.gz
sudo tar xvzf notation.tar.gz -C /usr/bin notation
rm -f notation.tar.gz
go install github.com/wadey/gocovmerge@latest
- if: matrix.os == 'linux' && matrix.arch == 'amd64'
name: Setup localstack service
run: |
pip install localstack # Install LocalStack cli
docker pull localstack/localstack:1.3 # Make sure to pull the latest version of the image
localstack start -d # Start LocalStack in the background
echo "Waiting for LocalStack startup..." # Wait 30 seconds for the LocalStack container
localstack wait -t 30 # to become ready before timing out
echo "Startup complete"
aws --endpoint-url=http://localhost:4566 s3api create-bucket --bucket zot-storage --region us-east-2 --create-bucket-configuration="{\"LocationConstraint\": \"us-east-2\"}"
aws dynamodb --endpoint-url http://localhost:4566 --region "us-east-2" create-table --table-name BlobTable --attribute-definitions AttributeName=Digest,AttributeType=S --key-schema AttributeName=Digest,KeyType=HASH --provisioned-throughput ReadCapacityUnits=10,WriteCapacityUnits=5
env:
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- name: Check disk space before build
run: |
cd $GITHUB_WORKSPACE
set -x
df -h
sudo ls -lRh /tmp/* || true
sudo du -sh /tmp || true
sudo du -sh /tmp/* || true
sudo find /tmp/ -size +5M | sudo xargs ls -lh
du -sh ./* || true
find ./ -size +5M | xargs ls -lh
sudo du -sh /var/
sudo du -sh /var/lib/docker/
du -sh /home/runner/work/
set +x
- name: Run build and test
timeout-minutes: 80
run: |
echo "Building for $OS:$ARCH"
cd $GITHUB_WORKSPACE
if [[ $OS == "linux" && $ARCH == "amd64" ]]; then
make
sudo env "PATH=$PATH" make privileged-test
else
make binary binary-minimal binary-debug cli bench exporter-minimal
fi
env:
S3MOCK_ENDPOINT: localhost:4566
DYNAMODBMOCK_ENDPOINT: http://localhost:4566
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
OS: ${{ matrix.os }}
ARCH: ${{ matrix.arch }}
- if: matrix.os == 'linux' && matrix.arch == 'amd64'
name: Stop localstack
run: |
localstack stop
- name: Check disk space after build
if: always()
run: |
cd $GITHUB_WORKSPACE
set -x
df -h
sudo ls -lRh /tmp/* || true
sudo du -sh /tmp || true
sudo du -sh /tmp/* || true
sudo find /tmp/ -size +5M | sudo xargs ls -lh
du -sh ./* || true
find ./ -size +5M | xargs ls -lh
sudo du -sh /var/
sudo du -sh /var/lib/docker/
du -sh /home/runner/work/
set +x
- name: Upload code coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Generate GraphQL Introspection JSON on Release
if: github.event_name == 'release' && github.event.action == 'published' && matrix.os == 'linux' && matrix.arch == 'amd64'
run: |
bin/zot-linux-amd64 serve examples/config-search.json &
sleep 10
curl -X POST -H "Content-Type: application/json" -d @.pkg/debug/githubWorkflows/introspection-query.json http://localhost:5000/v2/_zot/ext/search | jq > bin/zot-gql-introspection-result.json
pkill zot
- if: github.event_name == 'release' && github.event.action == 'published'
name: Publish artifacts on releases
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: bin/z*
tag: ${{ github.ref }}
overwrite: true
file_glob: true
push-image:
if: github.event_name == 'release' && github.event.action== 'published'
name: Push OCI images to GitHub Packages
runs-on: ubuntu-latest
permissions:

159
.github/workflows/test.yaml vendored Normal file
View file

@ -0,0 +1,159 @@
name: "Running tests"
on:
push:
branches:
- main
pull_request:
branches: [main]
release:
types:
- published
permissions: read-all
jobs:
test-run-minimal:
name: Running zot without extensions tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/clean-runner
- name: Install go
uses: actions/setup-go@v4
with:
cache: false
go-version: 1.20.x
- name: Cache go dependencies
id: cache-go-dependencies
uses: actions/cache@v3
with:
path: |
~/go/pkg/mod
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mod-
- name: Install go dependencies
if: steps.cache-go-dependencies.outputs.cache-hit != 'true'
run: |
cd $GITHUB_WORKSPACE
go mod download
- uses: ./.github/actions/setup-localstack
- uses: ./.github/actions/check-diskspace
- name: run zot minimal tests
run: |
cd $GITHUB_WORKSPACE
make test-minimal
env:
S3MOCK_ENDPOINT: localhost:4566
DYNAMODBMOCK_ENDPOINT: http://localhost:4566
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- name: upload coverage
uses: actions/upload-artifact@v3
with:
name: coverage-minimal
path: coverage-minimal.txt
- uses: ./.github/actions/check-diskspace
- uses: ./.github/actions/teardown-localstack
test-run-extensions:
name: Run zot with extensions tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/clean-runner
- uses: actions/setup-go@v4
with:
cache: false
go-version: 1.20.x
- name: Cache go dependencies
id: cache-go-dependencies
uses: actions/cache@v3
with:
path: |
~/go/pkg/mod
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mod-
- name: Install go dependencies
if: steps.cache-go-dependencies.outputs.cache-hit != 'true'
run: |
cd $GITHUB_WORKSPACE
go mod download
- uses: ./.github/actions/setup-localstack
- uses: ./.github/actions/check-diskspace
- name: run zot extended tests
run: |
cd $GITHUB_WORKSPACE
make test-extended
env:
S3MOCK_ENDPOINT: localhost:4566
DYNAMODBMOCK_ENDPOINT: http://localhost:4566
AWS_ACCESS_KEY_ID: fake
AWS_SECRET_ACCESS_KEY: fake
- name: upload coverage
uses: actions/upload-artifact@v3
with:
name: coverage-extended
path: coverage-extended.txt
- uses: ./.github/actions/check-diskspace
- uses: ./.github/actions/teardown-localstack
test-run-devmode:
name: Running privileged tests on Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/clean-runner
- uses: actions/setup-go@v4
with:
cache: false
go-version: 1.20.x
- name: Cache go dependencies
id: cache-go-dependencies
uses: actions/cache@v3
with:
path: |
~/go/pkg/mod
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-mod-
- name: Install go dependencies
if: steps.cache-go-dependencies.outputs.cache-hit != 'true'
run: |
cd $GITHUB_WORKSPACE
go mod download
- uses: ./.github/actions/check-diskspace
- name: run zot development-mode unit tests (possibly using failure injection)
run: make test-devmode
- name: run zot privileged tests
run: sudo env "PATH=$PATH" make privileged-test
- name: upload coverage
uses: actions/upload-artifact@v3
with:
name: coverage-devmode
path: coverage-dev-*.txt
- uses: ./.github/actions/check-diskspace
test-coverage:
name: Collect all test coverage
runs-on: ubuntu-latest
if: always()
needs: [test-run-minimal,test-run-extensions,test-run-devmode]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
cache: false
go-version: 1.20.x
- name: download all workflow coverage files
uses: actions/download-artifact@v3
- name: merge code coverage
run: |
cd $GITHUB_WORKSPACE
cp coverage-minimal/* .
cp coverage-extended/* .
cp coverage-devmode/* .
make covhtml
- name: upload code coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}

View file

@ -23,7 +23,7 @@ REGCLIENT_VERSION := v0.4.5
CRICTL := $(TOOLSDIR)/bin/crictl
CRICTL_VERSION := v1.26.1
ACTION_VALIDATOR := $(TOOLSDIR)/bin/action-validator
ACTION_VALIDATOR_VERSION := v0.2.1
ACTION_VALIDATOR_VERSION := v0.5.3
ZUI_VERSION := commit-b787273
SWAGGER_VERSION := v1.8.12
STACKER := $(TOOLSDIR)/bin/stacker
@ -125,24 +125,37 @@ exporter-minimal: EXTENSIONS=
exporter-minimal: modcheck build-metadata
env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zxp-$(OS)-$(ARCH) $(BUILDMODE_FLAGS) -tags containers_image_openpgp -v -trimpath ./cmd/zxp
.PHONY: test-prereq
test-prereq: check-skopeo $(TESTDATA) $(ORAS)
.PHONY: test-extended
test-extended: $(if $(findstring ui,$(BUILD_LABELS)), ui)
test-extended: test-prereq
go test -failfast -tags $(BUILD_LABELS),containers_image_openpgp -trimpath -race -timeout 15m -cover -coverpkg ./... -coverprofile=coverage-extended.txt -covermode=atomic ./...
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
.PHONY: test-minimal
test-minimal: test-prereq
go test -failfast -tags containers_image_openpgp -trimpath -race -cover -coverpkg ./... -coverprofile=coverage-minimal.txt -covermode=atomic ./...
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
.PHONY: test-devmode
test-devmode: $(if $(findstring ui,$(BUILD_LABELS)), ui)
test-devmode: test-prereq
go test -failfast -tags dev,$(BUILD_LABELS),containers_image_openpgp -trimpath -race -timeout 15m -cover -coverpkg ./... -coverprofile=coverage-dev-extended.txt -covermode=atomic ./pkg/test/... ./pkg/api/... ./pkg/storage/... ./pkg/extensions/sync/... -run ^TestInject
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
go test -failfast -tags dev,containers_image_openpgp -trimpath -race -cover -coverpkg ./... -coverprofile=coverage-dev-minimal.txt -covermode=atomic ./pkg/test/... ./pkg/storage/... ./pkg/extensions/sync/... -run ^TestInject
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
go test -failfast -tags stress,$(BUILD_LABELS),containers_image_openpgp -trimpath -race -timeout 15m ./pkg/cli/server/stress_test.go
.PHONY: test
test: $(if $(findstring ui,$(BUILD_LABELS)), ui)
test: check-skopeo $(TESTDATA) $(ORAS)
go test -failfast -tags $(BUILD_LABELS),containers_image_openpgp -v -trimpath -race -timeout 15m -cover -coverpkg ./... -coverprofile=coverage-extended.txt -covermode=atomic ./...
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
go test -failfast -tags containers_image_openpgp -v -trimpath -race -cover -coverpkg ./... -coverprofile=coverage-minimal.txt -covermode=atomic ./...
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
# development-mode unit tests possibly using failure injection
go test -failfast -tags dev,$(BUILD_LABELS),containers_image_openpgp -v -trimpath -race -timeout 15m -cover -coverpkg ./... -coverprofile=coverage-dev-extended.txt -covermode=atomic ./pkg/test/... ./pkg/api/... ./pkg/storage/... ./pkg/extensions/sync/... -run ^TestInject
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
go test -failfast -tags dev,containers_image_openpgp -v -trimpath -race -cover -coverpkg ./... -coverprofile=coverage-dev-minimal.txt -covermode=atomic ./pkg/test/... ./pkg/storage/... ./pkg/extensions/sync/... -run ^TestInject
rm -rf /tmp/getter*; rm -rf /tmp/trivy*
go test -failfast -tags stress,$(BUILD_LABELS),containers_image_openpgp -v -trimpath -race -timeout 15m ./pkg/cli/server/stress_test.go
test: test-extended test-minimal test-devmode
.PHONY: privileged-test
privileged-test: $(if $(findstring ui,$(BUILD_LABELS)), ui)
privileged-test: check-skopeo $(TESTDATA)
go test -failfast -tags needprivileges,$(BUILD_LABELS),containers_image_openpgp -v -trimpath -race -timeout 15m -cover -coverpkg ./... -coverprofile=coverage-dev-needprivileges.txt -covermode=atomic ./pkg/storage/local/... ./pkg/cli/client/... -run ^TestElevatedPrivileges
go test -failfast -tags needprivileges,$(BUILD_LABELS),containers_image_openpgp -trimpath -race -timeout 15m -cover -coverpkg ./... -coverprofile=coverage-dev-needprivileges.txt -covermode=atomic ./pkg/storage/local/... ./pkg/cli/client/... -run ^TestElevatedPrivileges
$(TESTDATA): check-skopeo
mkdir -p ${TESTDATA}; \
@ -158,10 +171,13 @@ $(TESTDATA): check-skopeo
.PHONY: run-bench
run-bench: binary bench
bin/zot-$(OS)-$(ARCH) serve examples/config-bench.json &
bin/zot-$(OS)-$(ARCH) serve examples/config-bench.json & echo $$! > zot.PID
sleep 5
bin/zb-$(OS)-$(ARCH) -c 10 -n 100 -o $(BENCH_OUTPUT) http://localhost:8080
killall -r zot-*
@if [ -e zot.PID ]; then \
kill -TERM $$(cat zot.PID) || true; \
fi; \
rm zot.PID
.PHONY: check-skopeo
check-skopeo:
@ -205,12 +221,12 @@ $(CRICTL):
$(ACTION_VALIDATOR):
mkdir -p $(TOOLSDIR)/bin
curl -Lo action-validator https://github.com/mpalmer/action-validator/releases/download/$(ACTION_VALIDATOR_VERSION)/action-validator_linux_amd64
curl -Lo action-validator https://github.com/mpalmer/action-validator/releases/download/$(ACTION_VALIDATOR_VERSION)/action-validator_$(OS)_$(ARCH)
mv action-validator $(TOOLSDIR)/bin/action-validator
chmod +x $(TOOLSDIR)/bin/action-validator
.PHONY: check-gh-actions
check-gh-actions: $(ACTION_VALIDATOR)
check-gh-actions: check-compatibility $(ACTION_VALIDATOR)
for i in $$(ls .github/workflows/*); do $(ACTION_VALIDATOR) $$i; done
.PHONY: covhtml
@ -229,11 +245,10 @@ check: $(if $(findstring ui,$(BUILD_LABELS)), ui)
check: ./golangcilint.yaml $(GOLINTER)
mkdir -p pkg/extensions/build; touch pkg/extensions/build/.empty
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags containers_image_openpgp ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags $(BUILD_LABELS),containers_image_openpgp ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags $(BUILD_LABELS),containers_image_openpgp,debug ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags dev,containers_image_openpgp ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags dev,$(BUILD_LABELS),containers_image_openpgp ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags stress,$(BUILD_LABELS),containers_image_openpgp ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags $(BUILD_LABELS),containers_image_openpgp ./...
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags debug ./pkg/debug/swagger/ ./pkg/debug/gqlplayground
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags dev ./pkg/test/inject/
$(GOLINTER) --config ./golangcilint.yaml run --enable-all --out-format=colored-line-number --build-tags stress ./pkg/cli/server/
rm pkg/extensions/build/.empty
.PHONY: swagger
@ -249,12 +264,13 @@ update-licenses:
.PHONY: check-licenses
check-licenses:
# note: "printf" works for darwin instead of "echo -n"
go install github.com/google/go-licenses@latest
@for tag in "$(BUILD_LABELS),containers_image_openpgp" "$(BUILD_LABELS),containers_image_openpgp"; do \
@for tag in "$(BUILD_LABELS),containers_image_openpgp" "containers_image_openpgp"; do \
echo Evaluating tag: $$tag;\
for mod in $$(go list -m -f '{{if not (or .Indirect .Main)}}{{.Path}}{{end}}' all); do \
while [ x$$mod != x ]; do \
echo -n "Checking $$mod ... "; \
printf "Checking $$mod ... "; \
result=$$(GOFLAGS="-tags=$${tag}" go-licenses check $$mod 2>&1); \
if [ $$? -eq 0 ]; then \
echo OK; \
@ -472,3 +488,15 @@ check-linux:
ifneq ($(shell go env GOOS),linux)
$(error makefile target can be run only on linux)
endif
.PHONY: check-compatibility
check-compatibility:
ifeq ($(OS),freebsd)
$(error makefile target can't be run on freebsd)
endif
ifneq ($(OS),$(shell go env GOOS))
$(error target can't be run on $(shell go env GOOS) as binary is compiled for $(OS))
endif
ifneq ($(ARCH),$(shell go env GOARCH))
$(error target can't be run on $(shell go env GOARCH) (binary is for $(ARCH)))
endif

View file

@ -1,4 +1,4 @@
# zot [![build-test](https://github.com/project-zot/zot/actions/workflows/ci-cd.yml/badge.svg?branch=main)](https://github.com/project-zot/zot/actions/workflows/ci-cd.yml) [![nightly jobs](https://github.com/project-zot/zot/actions/workflows/nightly.yaml/badge.svg)](https://github.com/project-zot/zot/actions/workflows/nightly.yaml) [![codecov.io](http://codecov.io/github/project-zot/zot/coverage.svg?branch=main)](http://codecov.io/github/project-zot/zot?branch=main) [![Conformance Results](https://github.com/project-zot/zot/workflows/conformance/badge.svg)](https://github.com/project-zot/zot/actions?query=workflow%3Aconformance) [![CodeQL](https://github.com/project-zot/zot/workflows/CodeQL/badge.svg)](https://github.com/project-zot/zot/actions?query=workflow%3ACodeQL) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5425/badge)](https://bestpractices.coreinfrastructure.org/projects/5425) [![Go Reference](https://pkg.go.dev/badge/zotregistry.io/zot.svg)](https://pkg.go.dev/zotregistry.io/zot)
# zot [![build](https://github.com/project-zot/zot/actions/workflows/build.yaml/badge.svg?branch=main)](https://github.com/project-zot/zot/actions/workflows/build.yaml) [![test](https://github.com/project-zot/zot/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/project-zot/zot/actions/workflows/test.yaml) [![nightly jobs](https://github.com/project-zot/zot/actions/workflows/nightly.yaml/badge.svg)](https://github.com/project-zot/zot/actions/workflows/nightly.yaml) [![codecov.io](http://codecov.io/github/project-zot/zot/coverage.svg?branch=main)](http://codecov.io/github/project-zot/zot?branch=main) [![Conformance Results](https://github.com/project-zot/zot/workflows/conformance/badge.svg)](https://github.com/project-zot/zot/actions?query=workflow%3Aconformance) [![CodeQL](https://github.com/project-zot/zot/workflows/CodeQL/badge.svg)](https://github.com/project-zot/zot/actions?query=workflow%3ACodeQL) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5425/badge)](https://bestpractices.coreinfrastructure.org/projects/5425) [![Go Reference](https://pkg.go.dev/badge/zotregistry.io/zot.svg)](https://pkg.go.dev/zotregistry.io/zot)
**zot**: a production-ready vendor-neutral OCI image registry - images stored in [OCI image format](https://github.com/opencontainers/image-spec), [distribution specification](https://github.com/opencontainers/distribution-spec) on-the-wire, that's it!

View file

@ -1,399 +1,487 @@
Module | License URL | License
---|---|---
bitbucket.org/creachadair/shell|https://bitbucket.org/creachadair/shell/src/master/LICENSE|BSD-3-Clause
cloud.google.com/go/compute/metadata|Unknown|Apache-2.0
cloud.google.com/go/iam|Unknown|Apache-2.0
cloud.google.com/go/internal|Unknown|Apache-2.0
cloud.google.com/go/storage|Unknown|Apache-2.0
cloud.google.com/go|Unknown|Apache-2.0
github.com/99designs/gqlgen|https://github.com/99designs/gqlgen/blob/master/LICENSE|MIT
github.com/acarl005/stripansi|https://github.com/acarl005/stripansi/blob/master/LICENSE|MIT
github.com/acomagu/bufpipe|Unknown|Unknown
github.com/AdaLogics/go-fuzz-headers|https://github.com/AdaLogics/go-fuzz-headers/blob/master/LICENSE|Apache-2.0
github.com/agext/levenshtein|https://github.com/agext/levenshtein/blob/master/LICENSE|Apache-2.0
github.com/agnivade/levenshtein|https://github.com/agnivade/levenshtein/blob/master/License.txt|MIT
github.com/alecthomas/template|https://github.com/alecthomas/template/blob/master/LICENSE|BSD-3-Clause
github.com/apex/log|https://github.com/apex/log/blob/master/LICENSE|MIT
github.com/apparentlymart/go-textseg/v13/textseg|https://github.com/apparentlymart/go-textseg/blob/master/v13/textseg/LICENSE|MIT
github.com/aquasecurity/go-gem-version|https://github.com/aquasecurity/go-gem-version/blob/master/LICENSE|Apache-2.0
github.com/aquasecurity/go-pep440-version|https://github.com/aquasecurity/go-pep440-version/blob/master/LICENSE|Apache-2.0
github.com/aquasecurity/go-version/pkg/part|https://github.com/aquasecurity/go-version/blob/master/pkg/part/LICENSE|Apache-2.0
github.com/armon/go-metrics|https://github.com/armon/go-metrics/blob/master/LICENSE|MIT
github.com/armon/go-radix|https://github.com/armon/go-radix/blob/master/LICENSE|MIT
github.com/asaskevich/govalidator|https://github.com/asaskevich/govalidator/blob/master/LICENSE|MIT
github.com/aws/aws-sdk-go|https://github.com/aws/aws-sdk-go/blob/master/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go/internal/sync/singleflight|https://github.com/aws/aws-sdk-go/blob/master/internal/sync/singleflight/LICENSE|BSD-3-Clause
github.com/aws/aws-sdk-go-v2/config|https://github.com/aws/aws-sdk-go-v2/blob/master/config/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/credentials|https://github.com/aws/aws-sdk-go-v2/blob/master/credentials/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imds|https://github.com/aws/aws-sdk-go-v2/blob/master/feature/ec2/imds/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2|https://github.com/aws/aws-sdk-go-v2/blob/master/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/configsources|https://github.com/aws/aws-sdk-go-v2/blob/master/internal/configsources/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2|https://github.com/aws/aws-sdk-go-v2/blob/master/internal/endpoints/v2/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/ini|https://github.com/aws/aws-sdk-go-v2/blob/master/internal/ini/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/sync/singleflight|https://github.com/aws/aws-sdk-go-v2/blob/master/internal/sync/singleflight/LICENSE|BSD-3-Clause
github.com/aws/aws-sdk-go-v2/service/ecr|https://github.com/aws/aws-sdk-go-v2/blob/master/service/ecr/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/ecrpublic|https://github.com/aws/aws-sdk-go-v2/blob/master/service/ecrpublic/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url|https://github.com/aws/aws-sdk-go-v2/blob/master/service/internal/presigned-url/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/sso|https://github.com/aws/aws-sdk-go-v2/blob/master/service/sso/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/sts|https://github.com/aws/aws-sdk-go-v2/blob/master/service/sts/LICENSE.txt|Apache-2.0
github.com/awslabs/amazon-ecr-credential-helper/ecr-login|https://github.com/awslabs/amazon-ecr-credential-helper/blob/master/ecr-login/LICENSE|Apache-2.0
github.com/aws/smithy-go|https://github.com/aws/smithy-go/blob/master/LICENSE|Apache-2.0
github.com/Azure/azure-sdk-for-go|https://github.com/Azure/azure-sdk-for-go/blob/master/LICENSE.txt|MIT
github.com/Azure/go-autorest/autorest/adal|https://github.com/Azure/go-autorest/blob/master/autorest/adal/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/azure/auth|https://github.com/Azure/go-autorest/blob/master/autorest/azure/auth/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/azure/cli|https://github.com/Azure/go-autorest/blob/master/autorest/azure/cli/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/date|https://github.com/Azure/go-autorest/blob/master/autorest/date/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest|https://github.com/Azure/go-autorest/blob/master/autorest/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/to|https://github.com/Azure/go-autorest/blob/master/autorest/to/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/validation|https://github.com/Azure/go-autorest/blob/master/autorest/validation/LICENSE|Apache-2.0
github.com/Azure/go-autorest|https://github.com/Azure/go-autorest/blob/master/LICENSE|Apache-2.0
github.com/Azure/go-autorest/logger|https://github.com/Azure/go-autorest/blob/master/logger/LICENSE|Apache-2.0
github.com/Azure/go-autorest/tracing|https://github.com/Azure/go-autorest/blob/master/tracing/LICENSE|Apache-2.0
github.com/Azure/go-ntlmssp|https://github.com/Azure/go-ntlmssp/blob/master/LICENSE|MIT
github.com/benbjohnson/clock|https://github.com/benbjohnson/clock/blob/master/LICENSE|MIT
github.com/beorn7/perks/quantile|https://github.com/beorn7/perks/blob/master/quantile/LICENSE|MIT
github.com/bgentry/go-netrc/netrc|https://github.com/bgentry/go-netrc/blob/master/netrc/LICENSE|MIT
github.com/bgentry/speakeasy|https://github.com/bgentry/speakeasy/blob/master/LICENSE|MIT
github.com/blang/semver|https://github.com/blang/semver/blob/master/LICENSE|MIT
github.com/bmatcuk/doublestar|https://github.com/bmatcuk/doublestar/blob/master/LICENSE|MIT
github.com/bmatcuk/doublestar/v4|https://github.com/bmatcuk/doublestar/blob/master/v4/LICENSE|MIT
github.com/briandowns/spinner|https://github.com/briandowns/spinner/blob/master/LICENSE|Apache-2.0
github.com/BurntSushi/toml|https://github.com/BurntSushi/toml/blob/master/COPYING|MIT
github.com/caarlos0/env/v6|https://github.com/caarlos0/env/blob/master/v6/LICENSE.md|MIT
github.com/cenkalti/backoff|https://github.com/cenkalti/backoff/blob/master/LICENSE|MIT
github.com/cenkalti/backoff/v3|https://github.com/cenkalti/backoff/blob/master/v3/LICENSE|MIT
github.com/cespare/xxhash/v2|https://github.com/cespare/xxhash/blob/master/v2/LICENSE.txt|MIT
github.com/chartmuseum/auth|https://github.com/chartmuseum/auth/blob/master/LICENSE|Apache-2.0
github.com/cheggaaa/pb/v3|https://github.com/cheggaaa/pb/blob/master/v3/LICENSE|BSD-3-Clause
github.com/chrismellard/docker-credential-acr-env|https://github.com/chrismellard/docker-credential-acr-env/blob/master/LICENSE|Apache-2.0
github.com/cockroachdb/apd/v2|https://github.com/cockroachdb/apd/blob/master/v2/LICENSE|Apache-2.0
github.com/common-nighthawk/go-figure|https://github.com/common-nighthawk/go-figure/blob/master/LICENSE|MIT
github.com/containerd/stargz-snapshotter/estargz|https://github.com/containerd/stargz-snapshotter/blob/master/estargz/LICENSE|Apache-2.0
github.com/containerd/typeurl|https://github.com/containerd/typeurl/blob/master/LICENSE|Apache-2.0
github.com/containers/image/v5|https://github.com/containers/image/blob/master/v5/LICENSE|Apache-2.0
github.com/containers/libtrust|https://github.com/containers/libtrust/blob/master/LICENSE|Apache-2.0
github.com/containers/ocicrypt|https://github.com/containers/ocicrypt/blob/master/LICENSE|Apache-2.0
github.com/coreos/go-semver|https://github.com/coreos/go-semver/blob/master/LICENSE|Apache-2.0
github.com/coreos/go-semver/semver|https://github.com/coreos/go-semver/blob/master/semver/LICENSE|Apache-2.0
github.com/coreos/go-systemd/v22|https://github.com/coreos/go-systemd/blob/master/v22/LICENSE|Apache-2.0
github.com/coreos/go-systemd/v22/journal|https://github.com/coreos/go-systemd/blob/master/v22/journal/LICENSE|Apache-2.0
github.com/cpuguy83/go-md2man/v2|https://github.com/cpuguy83/go-md2man/blob/master/v2/LICENSE.md|MIT
github.com/cpuguy83/go-md2man/v2/md2man|https://github.com/cpuguy83/go-md2man/blob/master/v2/md2man/LICENSE.md|MIT
github.com/cyphar/filepath-securejoin|https://github.com/cyphar/filepath-securejoin/blob/master/LICENSE|BSD-3-Clause
github.com/davecgh/go-spew/spew|https://github.com/davecgh/go-spew/blob/master/spew/LICENSE|ISC
github.com/dgryski/go-rendezvous|https://github.com/dgryski/go-rendezvous/blob/master/LICENSE|MIT
github.com/didip/tollbooth/v6|https://github.com/didip/tollbooth/blob/master/v6/LICENSE|MIT
github.com/dimchansky/utfbom|https://github.com/dimchansky/utfbom/blob/master/LICENSE|Apache-2.0
github.com/distribution/distribution/v3|https://github.com/distribution/distribution/blob/master/v3/LICENSE|Apache-2.0
github.com/docker/distribution|https://github.com/docker/distribution/blob/master/LICENSE|Apache-2.0
github.com/docker/docker-credential-helpers/credentials|https://github.com/docker/docker-credential-helpers/blob/master/credentials/LICENSE|MIT
github.com/docker/go-connections|https://github.com/docker/go-connections/blob/master/LICENSE|Apache-2.0
github.com/docker/go-metrics|https://github.com/docker/go-metrics/blob/master/LICENSE|Apache-2.0
github.com/docker/go-units|https://github.com/docker/go-units/blob/master/LICENSE|Apache-2.0
github.com/dustin/go-humanize|https://github.com/dustin/go-humanize/blob/master/LICENSE|MIT
github.com/emicklei/proto|https://github.com/emicklei/proto/blob/master/LICENSE|MIT
github.com/emirpasic/gods|https://github.com/emirpasic/gods/blob/master/LICENSE|BSD-2-Clause
github.com/fatih/color|https://github.com/fatih/color/blob/master/LICENSE.md|MIT
github.com/felixge/httpsnoop|https://github.com/felixge/httpsnoop/blob/master/LICENSE.txt|MIT
github.com/form3tech-oss/jwt-go|https://github.com/form3tech-oss/jwt-go/blob/master/LICENSE|MIT
github.com/fsnotify/fsnotify|https://github.com/fsnotify/fsnotify/blob/master/LICENSE|BSD-3-Clause
github.com/fullstorydev/grpcurl|https://github.com/fullstorydev/grpcurl/blob/master/LICENSE|MIT
github.com/getlantern/deepcopy|https://github.com/getlantern/deepcopy/blob/master/LICENSE|Apache-2.0
github.com/ghodss/yaml|https://github.com/ghodss/yaml/blob/master/LICENSE|MIT
github.com/go-asn1-ber/asn1-ber|https://github.com/go-asn1-ber/asn1-ber/blob/master/LICENSE|MIT
github.com/gobwas/glob|https://github.com/gobwas/glob/blob/master/LICENSE|MIT
github.com/go-chi/chi|https://github.com/go-chi/chi/blob/master/LICENSE|MIT
github.com/gofrs/uuid|https://github.com/gofrs/uuid/blob/master/LICENSE|MIT
github.com/go-git/gcfg|https://github.com/go-git/gcfg/blob/master/LICENSE|BSD-3-Clause
github.com/go-git/go-billy/v5|https://github.com/go-git/go-billy/blob/master/v5/LICENSE|Apache-2.0
github.com/go-git/go-git/v5|https://github.com/go-git/go-git/blob/master/v5/LICENSE|Apache-2.0
github.com/gogo/protobuf|https://github.com/gogo/protobuf/blob/master/LICENSE|BSD-3-Clause
github.com/golang/glog|https://github.com/golang/glog/blob/master/LICENSE|Apache-2.0
github.com/golang/groupcache|https://github.com/golang/groupcache/blob/master/LICENSE|Apache-2.0
github.com/golang/groupcache/lru|https://github.com/golang/groupcache/blob/master/lru/LICENSE|Apache-2.0
github.com/golang-jwt/jwt|https://github.com/golang-jwt/jwt/blob/master/LICENSE|MIT
github.com/golang-jwt/jwt/v4|https://github.com/golang-jwt/jwt/blob/master/v4/LICENSE|MIT
github.com/golang/protobuf|https://github.com/golang/protobuf/blob/master/LICENSE|BSD-3-Clause
github.com/golang/protobuf/proto|https://github.com/golang/protobuf/blob/master/proto/LICENSE|BSD-3-Clause
github.com/golang/snappy|https://github.com/golang/snappy/blob/master/LICENSE|BSD-3-Clause
github.com/go-ldap/ldap/v3|https://github.com/go-ldap/ldap/blob/master/v3/LICENSE|MIT
github.com/go-logr/logr|https://github.com/go-logr/logr/blob/master/LICENSE|Apache-2.0
github.com/googleapis/gax-go/v2|https://github.com/googleapis/gax-go/blob/master/v2/LICENSE|BSD-3-Clause
github.com/googleapis/gnostic|https://github.com/googleapis/gnostic/blob/master/LICENSE|Apache-2.0
github.com/google/btree|https://github.com/google/btree/blob/master/LICENSE|Apache-2.0
github.com/google/certificate-transparency-go|https://github.com/google/certificate-transparency-go/blob/master/LICENSE|Apache-2.0
github.com/google/go-cmp/cmp|https://github.com/google/go-cmp/blob/master/cmp/LICENSE|BSD-3-Clause
github.com/google/gofuzz|https://github.com/google/gofuzz/blob/master/LICENSE|Apache-2.0
github.com/google/go-querystring/query|https://github.com/google/go-querystring/blob/master/query/LICENSE|BSD-3-Clause
github.com/google/trillian|https://github.com/google/trillian/blob/master/LICENSE|Apache-2.0
github.com/google/uuid|https://github.com/google/uuid/blob/master/LICENSE|BSD-3-Clause
github.com/google/wire|https://github.com/google/wire/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/analysis|https://github.com/go-openapi/analysis/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/errors|https://github.com/go-openapi/errors/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/jsonpointer|https://github.com/go-openapi/jsonpointer/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/jsonreference|https://github.com/go-openapi/jsonreference/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/loads|https://github.com/go-openapi/loads/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/runtime|https://github.com/go-openapi/runtime/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/spec|https://github.com/go-openapi/spec/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/strfmt|https://github.com/go-openapi/strfmt/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/swag|https://github.com/go-openapi/swag/blob/master/LICENSE|Apache-2.0
github.com/go-openapi/validate|https://github.com/go-openapi/validate/blob/master/LICENSE|Apache-2.0
github.com/go-pkgz/expirable-cache|https://github.com/go-pkgz/expirable-cache/blob/master/LICENSE|MIT
github.com/go-playground/locales|https://github.com/go-playground/locales/blob/master/LICENSE|MIT
github.com/go-playground/universal-translator|https://github.com/go-playground/universal-translator/blob/master/LICENSE|MIT
github.com/go-playground/validator/v10|https://github.com/go-playground/validator/blob/master/v10/LICENSE|MIT
github.com/go-redis/redis/v8|https://github.com/go-redis/redis/blob/master/v8/LICENSE|BSD-2-Clause
github.com/go-restruct/restruct|https://github.com/go-restruct/restruct/blob/master/LICENSE.md|ISC
github.com/gorilla/handlers|https://github.com/gorilla/handlers/blob/master/LICENSE|BSD-2-Clause
github.com/gorilla/mux|https://github.com/gorilla/mux/blob/master/LICENSE|BSD-3-Clause
github.com/gorilla/websocket|https://github.com/gorilla/websocket/blob/master/LICENSE|BSD-2-Clause
github.com/go-stack/stack|https://github.com/go-stack/stack/blob/master/LICENSE.md|MIT
github.com/grpc-ecosystem/go-grpc-middleware|https://github.com/grpc-ecosystem/go-grpc-middleware/blob/master/LICENSE|Apache-2.0
github.com/grpc-ecosystem/go-grpc-prometheus|https://github.com/grpc-ecosystem/go-grpc-prometheus/blob/master/LICENSE|Apache-2.0
github.com/grpc-ecosystem/grpc-gateway|https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt|BSD-3-Clause
github.com/hashicorp/errwrap|https://github.com/hashicorp/errwrap/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-cleanhttp|https://github.com/hashicorp/go-cleanhttp/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-getter|https://github.com/hashicorp/go-getter/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-hclog|https://github.com/hashicorp/go-hclog/blob/master/LICENSE|MIT
github.com/hashicorp/go-immutable-radix|https://github.com/hashicorp/go-immutable-radix/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/golang-lru|https://github.com/hashicorp/golang-lru/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/golang-lru/simplelru|https://github.com/hashicorp/golang-lru/blob/master/simplelru/LICENSE|MPL-2.0
github.com/hashicorp/go-multierror|https://github.com/hashicorp/go-multierror/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-plugin|https://github.com/hashicorp/go-plugin/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-retryablehttp|https://github.com/hashicorp/go-retryablehttp/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-rootcerts|https://github.com/hashicorp/go-rootcerts/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-safetemp|https://github.com/hashicorp/go-safetemp/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-secure-stdlib/mlock|https://github.com/hashicorp/go-secure-stdlib/blob/master/mlock/LICENSE|MPL-2.0
github.com/hashicorp/go-secure-stdlib/parseutil|https://github.com/hashicorp/go-secure-stdlib/blob/master/parseutil/LICENSE|MPL-2.0
github.com/hashicorp/go-secure-stdlib/strutil|https://github.com/hashicorp/go-secure-stdlib/blob/master/strutil/LICENSE|MPL-2.0
github.com/hashicorp/go-sockaddr|https://github.com/hashicorp/go-sockaddr/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-uuid|https://github.com/hashicorp/go-uuid/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/go-version|https://github.com/hashicorp/go-version/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/hcl|https://github.com/hashicorp/hcl/blob/master/LICENSE|MPL-2.0
github.com/hashicorp/hcl/v2|https://github.com/hashicorp/hcl/blob/master/v2/LICENSE|MPL-2.0
github.com/hashicorp/vault/api|https://github.com/hashicorp/vault/blob/master/api/LICENSE|MPL-2.0
github.com/hashicorp/vault/sdk|https://github.com/hashicorp/vault/blob/master/sdk/LICENSE|MPL-2.0
github.com/hashicorp/yamux|https://github.com/hashicorp/yamux/blob/master/LICENSE|MPL-2.0
github.com/huandu/xstrings|https://github.com/huandu/xstrings/blob/master/LICENSE|MIT
github.com/imdario/mergo|https://github.com/imdario/mergo/blob/master/LICENSE|BSD-3-Clause
github.com/inconshreveable/mousetrap|https://github.com/inconshreveable/mousetrap/blob/master/LICENSE|Apache-2.0
github.com/in-toto/in-toto-golang|https://github.com/in-toto/in-toto-golang/blob/master/LICENSE|Apache-2.0
github.com/jbenet/go-context|https://github.com/jbenet/go-context/blob/master/LICENSE|MIT
github.com/jbenet/go-context/io|https://github.com/jbenet/go-context/blob/master/io/LICENSE|MIT
github.com/jedisct1/go-minisign|https://github.com/jedisct1/go-minisign/blob/master/LICENSE|MIT
github.com/jhump/protoreflect|https://github.com/jhump/protoreflect/blob/master/LICENSE|Apache-2.0
github.com/jmespath/go-jmespath|https://github.com/jmespath/go-jmespath/blob/master/LICENSE|Apache-2.0
github.com/jonboulle/clockwork|https://github.com/jonboulle/clockwork/blob/master/LICENSE|Apache-2.0
github.com/josharian/intern|https://github.com/josharian/intern/blob/master/license.md|MIT
github.com/json-iterator/go|https://github.com/json-iterator/go/blob/master/LICENSE|MIT
github.com/jtolds/gls|https://github.com/jtolds/gls/blob/master/LICENSE|MIT
github.com/kevinburke/ssh_config|https://github.com/kevinburke/ssh_config/blob/master/LICENSE|MIT
github.com/klauspost/compress/flate|https://github.com/klauspost/compress/blob/master/flate/LICENSE|Apache-2.0
github.com/klauspost/compress|https://github.com/klauspost/compress/blob/master/LICENSE|Apache-2.0
github.com/klauspost/compress/internal/snapref|https://github.com/klauspost/compress/blob/master/internal/snapref/LICENSE|BSD-3-Clause
github.com/klauspost/compress/zstd/internal/xxhash|https://github.com/klauspost/compress/blob/master/zstd/internal/xxhash/LICENSE.txt|MIT
github.com/klauspost/cpuid/v2|https://github.com/klauspost/cpuid/blob/master/v2/LICENSE|MIT
github.com/klauspost/pgzip|https://github.com/klauspost/pgzip/blob/master/LICENSE|MIT
github.com/knqyf263/go-apk-version|https://github.com/knqyf263/go-apk-version/blob/master/LICENSE|Apache-2.0
github.com/knqyf263/go-deb-version|https://github.com/knqyf263/go-deb-version/blob/master/LICENSE|MIT
github.com/knqyf263/go-rpm-version|https://github.com/knqyf263/go-rpm-version/blob/master/LICENSE|MIT
github.com/knqyf263/nested|https://github.com/knqyf263/nested/blob/master/LICENSE|MIT
github.com/KyleBanks/depth|https://github.com/KyleBanks/depth/blob/master/LICENSE|MIT
github.com/leodido/go-urn|https://github.com/leodido/go-urn/blob/master/LICENSE|MIT
github.com/magiconair/properties|https://github.com/magiconair/properties/blob/master/LICENSE.md|BSD-2-Clause
github.com/mailru/easyjson|https://github.com/mailru/easyjson/blob/master/LICENSE|MIT
github.com/masahiro331/go-mvn-version|https://github.com/masahiro331/go-mvn-version/blob/master/LICENCE|Apache-2.0
github.com/Masterminds/goutils|https://github.com/Masterminds/goutils/blob/master/LICENSE.txt|Apache-2.0
github.com/Masterminds/semver|https://github.com/Masterminds/semver/blob/master/LICENSE.txt|MIT
github.com/Masterminds/sprig|https://github.com/Masterminds/sprig/blob/master/LICENSE.txt|MIT
github.com/mattn/go-colorable|https://github.com/mattn/go-colorable/blob/master/LICENSE|MIT
github.com/mattn/go-isatty|https://github.com/mattn/go-isatty/blob/master/LICENSE|MIT
github.com/mattn/go-runewidth|https://github.com/mattn/go-runewidth/blob/master/LICENSE|MIT
github.com/matttproud/golang_protobuf_extensions/pbutil|https://github.com/matttproud/golang_protobuf_extensions/blob/master/pbutil/LICENSE|Apache-2.0
github.com/Microsoft/go-winio|https://github.com/Microsoft/go-winio/blob/master/LICENSE|MIT
github.com/miekg/pkcs11|https://github.com/miekg/pkcs11/blob/master/LICENSE|BSD-3-Clause
github.com/minio/sha256-simd|https://github.com/minio/sha256-simd/blob/master/LICENSE|Apache-2.0
github.com/mitchellh/copystructure|https://github.com/mitchellh/copystructure/blob/master/LICENSE|MIT
github.com/mitchellh/go-homedir|https://github.com/mitchellh/go-homedir/blob/master/LICENSE|MIT
github.com/mitchellh/go-testing-interface|https://github.com/mitchellh/go-testing-interface/blob/master/LICENSE|MIT
github.com/mitchellh/go-wordwrap|https://github.com/mitchellh/go-wordwrap/blob/master/LICENSE.md|MIT
github.com/mitchellh/mapstructure|https://github.com/mitchellh/mapstructure/blob/master/LICENSE|MIT
github.com/mitchellh/reflectwalk|https://github.com/mitchellh/reflectwalk/blob/master/LICENSE|MIT
github.com/moby/buildkit|https://github.com/moby/buildkit/blob/master/LICENSE|Apache-2.0
github.com/moby/sys/mountinfo|https://github.com/moby/sys/blob/master/mountinfo/LICENSE|Apache-2.0
github.com/modern-go/concurrent|https://github.com/modern-go/concurrent/blob/master/LICENSE|Apache-2.0
github.com/modern-go/reflect2|https://github.com/modern-go/reflect2/blob/master/LICENSE|Apache-2.0
github.com/mpvl/unique|https://github.com/mpvl/unique/blob/master/LICENSE|MIT
github.com/mtrmac/gpgme|https://github.com/mtrmac/gpgme/blob/master/LICENSE|BSD-3-Clause
github.com/nmcclain/asn1-ber|https://github.com/nmcclain/asn1-ber/blob/master/LICENSE|BSD-3-Clause
github.com/nmcclain/ldap|https://github.com/nmcclain/ldap/blob/master/LICENSE|BSD-3-Clause
github.com/notaryproject/notation-go-lib|https://github.com/notaryproject/notation-go-lib/blob/master/LICENSE|Apache-2.0
github.com/oklog/run|https://github.com/oklog/run/blob/master/LICENSE|Apache-2.0
github.com/oklog/ulid|https://github.com/oklog/ulid/blob/master/LICENSE|Apache-2.0
github.com/olekukonko/tablewriter|https://github.com/olekukonko/tablewriter/blob/master/LICENSE.md|MIT
github.com/OneOfOne/xxhash|https://github.com/OneOfOne/xxhash/blob/master/LICENSE|Apache-2.0
github.com/opencontainers/go-digest|https://github.com/opencontainers/go-digest/blob/master/LICENSE|Apache-2.0
github.com/opencontainers/image-spec/specs-go|https://github.com/opencontainers/image-spec/blob/master/specs-go/LICENSE|Apache-2.0
github.com/opencontainers/runc/libcontainer/user|https://github.com/opencontainers/runc/blob/master/libcontainer/user/LICENSE|Apache-2.0
github.com/opencontainers/runtime-spec/specs-go|https://github.com/opencontainers/runtime-spec/blob/master/specs-go/LICENSE|Apache-2.0
github.com/opencontainers/umoci|https://github.com/opencontainers/umoci/blob/master/COPYING|Apache-2.0
github.com/opencontainers/umoci/third_party/shared|https://github.com/opencontainers/umoci/blob/master/third_party/shared/COPYING|Apache-2.0
github.com/opentracing/opentracing-go|https://github.com/opentracing/opentracing-go/blob/master/LICENSE|Apache-2.0
github.com/PaesslerAG/gval|https://github.com/PaesslerAG/gval/blob/master/LICENSE|BSD-3-Clause
github.com/PaesslerAG/jsonpath|https://github.com/PaesslerAG/jsonpath/blob/master/LICENSE|BSD-3-Clause
github.com/pelletier/go-toml|https://github.com/pelletier/go-toml/blob/master/LICENSE|Apache-2.0
github.com/phayes/freeport|https://github.com/phayes/freeport/blob/master/LICENSE.md|BSD-3-Clause
github.com/pierrec/lz4|https://github.com/pierrec/lz4/blob/master/LICENSE|BSD-3-Clause
github.com/pkg/errors|https://github.com/pkg/errors/blob/master/LICENSE|BSD-2-Clause
github.com/pmezard/go-difflib/difflib|https://github.com/pmezard/go-difflib/blob/master/difflib/LICENSE|BSD-3-Clause
github.com/prometheus/client_golang/prometheus|https://github.com/prometheus/client_golang/blob/master/prometheus/LICENSE|Apache-2.0
github.com/prometheus/client_model/go|https://github.com/prometheus/client_model/blob/master/go/LICENSE|Apache-2.0
github.com/prometheus/common|https://github.com/prometheus/common/blob/master/LICENSE|Apache-2.0
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg|https://github.com/prometheus/common/blob/master/internal/bitbucket.org/ww/goautoneg/README.txt|BSD-3-Clause
github.com/prometheus/procfs|https://github.com/prometheus/procfs/blob/master/LICENSE|Apache-2.0
github.com/ProtonMail/go-crypto|https://github.com/ProtonMail/go-crypto/blob/master/LICENSE|BSD-3-Clause
github.com/PuerkitoBio/purell|https://github.com/PuerkitoBio/purell/blob/master/LICENSE|BSD-3-Clause
github.com/PuerkitoBio/urlesc|https://github.com/PuerkitoBio/urlesc/blob/master/LICENSE|BSD-3-Clause
github.com/rcrowley/go-metrics|https://github.com/rcrowley/go-metrics/blob/master/LICENSE|BSD-2-Clause-FreeBSD
github.com/ReneKroon/ttlcache/v2|https://github.com/ReneKroon/ttlcache/blob/master/v2/LICENSE|MIT
github.com/rivo/uniseg|https://github.com/rivo/uniseg/blob/master/LICENSE.txt|MIT
cloud.google.com/go/compute/metadata|https://github.com/googleapis/google-cloud-go/blob/compute/metadata/v0.2.3/compute/metadata/LICENSE|Apache-2.0
cloud.google.com/go/iam|https://github.com/googleapis/google-cloud-go/blob/iam/v1.1.1/iam/LICENSE|Apache-2.0
cloud.google.com/go/internal|https://github.com/googleapis/google-cloud-go/blob/v0.110.6/LICENSE|Apache-2.0
cloud.google.com/go/storage|https://github.com/googleapis/google-cloud-go/blob/storage/v1.30.1/storage/LICENSE|Apache-2.0
cloud.google.com/go|https://github.com/googleapis/google-cloud-go/blob/v0.110.6/LICENSE|Apache-2.0
filippo.io/edwards25519|https://github.com/FiloSottile/edwards25519/blob/v1.0.0/LICENSE|BSD-3-Clause
github.com/99designs/gqlgen|https://github.com/99designs/gqlgen/blob/v0.17.37/LICENSE|MIT
github.com/AdaLogics/go-fuzz-headers|https://github.com/AdaLogics/go-fuzz-headers/blob/ced1acdcaa24/LICENSE|Apache-2.0
github.com/AdamKorcz/go-118-fuzz-build|https://github.com/AdamKorcz/go-118-fuzz-build/blob/8075edf89bb0/LICENSE|Apache-2.0
github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper|https://github.com/AliyunContainerService/ack-ram-tool/blob/pkg/credentials/alibabacloudsdkgo/helper/v0.2.0/pkg/credentials/alibabacloudsdkgo/helper/LICENSE|Apache-2.0
github.com/Azure/azure-sdk-for-go/sdk/azcore|https://github.com/Azure/azure-sdk-for-go/blob/sdk/azcore/v1.7.1/sdk/azcore/LICENSE.txt|MIT
github.com/Azure/azure-sdk-for-go/sdk/azidentity|https://github.com/Azure/azure-sdk-for-go/blob/sdk/azidentity/v1.3.1/sdk/azidentity/LICENSE.txt|MIT
github.com/Azure/azure-sdk-for-go/sdk/internal|https://github.com/Azure/azure-sdk-for-go/blob/sdk/internal/v1.3.0/sdk/internal/LICENSE.txt|MIT
github.com/Azure/azure-sdk-for-go|https://github.com/Azure/azure-sdk-for-go/blob/v68.0.0/LICENSE.txt|MIT
github.com/Azure/go-ansiterm|https://github.com/Azure/go-ansiterm/blob/306776ec8161/LICENSE|MIT
github.com/Azure/go-autorest/autorest/adal|https://github.com/Azure/go-autorest/blob/autorest/adal/v0.9.23/autorest/adal/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/azure/auth|https://github.com/Azure/go-autorest/blob/autorest/azure/auth/v0.5.12/autorest/azure/auth/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/azure/cli|https://github.com/Azure/go-autorest/blob/autorest/azure/cli/v0.4.6/autorest/azure/cli/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest/date|https://github.com/Azure/go-autorest/blob/autorest/date/v0.3.0/autorest/date/LICENSE|Apache-2.0
github.com/Azure/go-autorest/autorest|https://github.com/Azure/go-autorest/blob/autorest/v0.11.29/autorest/LICENSE|Apache-2.0
github.com/Azure/go-autorest/logger|https://github.com/Azure/go-autorest/blob/logger/v0.2.1/logger/LICENSE|Apache-2.0
github.com/Azure/go-autorest/tracing|https://github.com/Azure/go-autorest/blob/tracing/v0.6.0/tracing/LICENSE|Apache-2.0
github.com/Azure/go-autorest|https://github.com/Azure/go-autorest/blob/v14.2.0/LICENSE|Apache-2.0
github.com/Azure/go-ntlmssp|https://github.com/Azure/go-ntlmssp/blob/754e69321358/LICENSE|MIT
github.com/AzureAD/microsoft-authentication-library-for-go/apps|https://github.com/AzureAD/microsoft-authentication-library-for-go/blob/v1.1.1/LICENSE|MIT
github.com/BurntSushi/toml|https://github.com/BurntSushi/toml/blob/v1.3.2/COPYING|MIT
github.com/CycloneDX/cyclonedx-go|https://github.com/CycloneDX/cyclonedx-go/blob/v0.7.2/LICENSE|Apache-2.0
github.com/DataDog/datadog-agent/pkg/obfuscate|https://github.com/DataDog/datadog-agent/blob/pkg/obfuscate/v0.45.0-rc.1/pkg/obfuscate/LICENSE|Apache-2.0
github.com/DataDog/datadog-agent/pkg/remoteconfig/state|https://github.com/DataDog/datadog-agent/blob/pkg/remoteconfig/state/v0.46.0-rc.4/pkg/remoteconfig/state/LICENSE|Apache-2.0
github.com/DataDog/datadog-go/v5/statsd|https://github.com/DataDog/datadog-go/blob/v5.3.0/LICENSE.txt|MIT
github.com/DataDog/go-libddwaf|https://github.com/DataDog/go-libddwaf/blob/v1.4.1/LICENSE|Apache-2.0
github.com/DataDog/go-tuf|https://github.com/DataDog/go-tuf/blob/v0.3.0--fix-localmeta-fork/LICENSE|BSD-3-Clause
github.com/KyleBanks/depth|https://github.com/KyleBanks/depth/blob/v1.2.1/LICENSE|MIT
github.com/MakeNowJust/heredoc|https://github.com/MakeNowJust/heredoc/blob/v1.0.0/LICENSE|MIT
github.com/Masterminds/goutils|https://github.com/Masterminds/goutils/blob/v1.1.1/LICENSE.txt|Apache-2.0
github.com/Masterminds/semver/v3|https://github.com/Masterminds/semver/blob/v3.2.1/LICENSE.txt|MIT
github.com/Masterminds/semver|https://github.com/Masterminds/semver/blob/v1.5.0/LICENSE.txt|MIT
github.com/Masterminds/sprig/v3|https://github.com/Masterminds/sprig/blob/v3.2.3/LICENSE.txt|MIT
github.com/Masterminds/squirrel|https://github.com/Masterminds/squirrel/blob/v1.5.4/LICENSE|MIT
github.com/Microsoft/go-winio|https://github.com/Microsoft/go-winio/blob/v0.6.1/LICENSE|MIT
github.com/Microsoft/hcsshim|https://github.com/Microsoft/hcsshim/blob/v0.12.0-rc.0/LICENSE|MIT
github.com/OneOfOne/xxhash|https://github.com/OneOfOne/xxhash/blob/v1.2.8/LICENSE|Apache-2.0
github.com/ProtonMail/go-crypto|https://github.com/ProtonMail/go-crypto/blob/7afd39499903/LICENSE|BSD-3-Clause
github.com/ThalesIgnite/crypto11|https://github.com/ThalesIgnite/crypto11/blob/v1.2.5/LICENCE.txt|MIT
github.com/VividCortex/ewma|https://github.com/VividCortex/ewma/blob/v1.2.0/LICENSE|MIT
github.com/acarl005/stripansi|https://github.com/acarl005/stripansi/blob/5a71ef0e047d/LICENSE|MIT
github.com/acomagu/bufpipe|https://github.com/acomagu/bufpipe/blob/v1.0.4/LICENSE|MIT
github.com/agext/levenshtein|https://github.com/agext/levenshtein/blob/v1.2.3/LICENSE|Apache-2.0
github.com/agnivade/levenshtein|https://github.com/agnivade/levenshtein/blob/v1.1.1/License.txt|MIT
github.com/alecthomas/chroma|https://github.com/alecthomas/chroma/blob/v0.10.0/COPYING|MIT
github.com/alibabacloud-go/debug/debug|https://github.com/alibabacloud-go/debug/blob/9472017b5c68/LICENSE|Apache-2.0
github.com/alibabacloud-go/debug|https://github.com/alibabacloud-go/debug/blob/9472017b5c68/LICENSE|Apache-2.0
github.com/alibabacloud-go/tea|https://github.com/alibabacloud-go/tea/blob/v1.1.18/LICENSE|Apache-2.0
github.com/aliyun/credentials-go/credentials|https://github.com/aliyun/credentials-go/blob/v1.2.3/LICENSE|Apache-2.0
github.com/aliyun/credentials-go|https://github.com/aliyun/credentials-go/blob/v1.2.3/LICENSE|Apache-2.0
github.com/anchore/go-struct-converter|https://github.com/anchore/go-struct-converter/blob/c68fdcfa2092/LICENSE|Apache-2.0
github.com/apex/log|https://github.com/apex/log/blob/v1.9.0/LICENSE|MIT
github.com/apparentlymart/go-textseg/v13/textseg|https://github.com/apparentlymart/go-textseg/blob/v13.0.0/LICENSE|MIT
github.com/aquasecurity/go-gem-version|https://github.com/aquasecurity/go-gem-version/blob/8eed6fe000ce/LICENSE|Apache-2.0
github.com/aquasecurity/go-pep440-version|https://github.com/aquasecurity/go-pep440-version/blob/22b2f8951d46/LICENSE|Apache-2.0
github.com/aquasecurity/go-version/pkg/part|https://github.com/aquasecurity/go-version/blob/637058cfe492/LICENSE|Apache-2.0
github.com/aquasecurity/table|https://github.com/aquasecurity/table/blob/v1.8.0/LICENSE|MIT
github.com/aquasecurity/tml|https://github.com/aquasecurity/tml/blob/v0.6.1/LICENSE|Unlicense
github.com/asaskevich/govalidator|https://github.com/asaskevich/govalidator/blob/a9d515a09cc2/LICENSE|MIT
github.com/aws/aws-sdk-go-v2/config|https://github.com/aws/aws-sdk-go-v2/blob/config/v1.18.39/config/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/credentials|https://github.com/aws/aws-sdk-go-v2/blob/credentials/v1.13.37/credentials/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue|https://github.com/aws/aws-sdk-go-v2/blob/feature/dynamodb/attributevalue/v1.10.39/feature/dynamodb/attributevalue/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/feature/ec2/imds|https://github.com/aws/aws-sdk-go-v2/blob/feature/ec2/imds/v1.13.11/feature/ec2/imds/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/configsources|https://github.com/aws/aws-sdk-go-v2/blob/internal/configsources/v1.1.41/internal/configsources/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2|https://github.com/aws/aws-sdk-go-v2/blob/internal/endpoints/v2.4.35/internal/endpoints/v2/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/ini|https://github.com/aws/aws-sdk-go-v2/blob/internal/ini/v1.3.42/internal/ini/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/internal/sync/singleflight|https://github.com/aws/aws-sdk-go-v2/blob/v1.21.0/internal/sync/singleflight/LICENSE|BSD-3-Clause
github.com/aws/aws-sdk-go-v2/service/dynamodb/types|https://github.com/aws/aws-sdk-go-v2/blob/service/dynamodb/v1.21.5/service/dynamodb/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams/types|https://github.com/aws/aws-sdk-go-v2/blob/service/dynamodbstreams/v1.15.5/service/dynamodbstreams/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams|https://github.com/aws/aws-sdk-go-v2/blob/service/dynamodbstreams/v1.15.5/service/dynamodbstreams/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/dynamodb|https://github.com/aws/aws-sdk-go-v2/blob/service/dynamodb/v1.21.5/service/dynamodb/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/ebs|https://github.com/aws/aws-sdk-go-v2/blob/service/ebs/v1.18.1/service/ebs/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/ec2|https://github.com/aws/aws-sdk-go-v2/blob/service/ec2/v1.98.0/service/ec2/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/ecrpublic|https://github.com/aws/aws-sdk-go-v2/blob/service/ecrpublic/v1.12.0/service/ecrpublic/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/ecr|https://github.com/aws/aws-sdk-go-v2/blob/service/ecr/v1.17.18/service/ecr/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding|https://github.com/aws/aws-sdk-go-v2/blob/service/internal/accept-encoding/v1.9.14/service/internal/accept-encoding/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery|https://github.com/aws/aws-sdk-go-v2/blob/service/internal/endpoint-discovery/v1.7.35/service/internal/endpoint-discovery/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url|https://github.com/aws/aws-sdk-go-v2/blob/service/internal/presigned-url/v1.9.35/service/internal/presigned-url/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/secretsmanager|https://github.com/aws/aws-sdk-go-v2/blob/service/secretsmanager/v1.21.3/service/secretsmanager/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/ssooidc|https://github.com/aws/aws-sdk-go-v2/blob/service/ssooidc/v1.15.6/service/ssooidc/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/sso|https://github.com/aws/aws-sdk-go-v2/blob/service/sso/v1.13.6/service/sso/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2/service/sts|https://github.com/aws/aws-sdk-go-v2/blob/service/sts/v1.21.5/service/sts/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go-v2|https://github.com/aws/aws-sdk-go-v2/blob/v1.21.0/LICENSE.txt|Apache-2.0
github.com/aws/aws-sdk-go/internal/sync/singleflight|https://github.com/aws/aws-sdk-go/blob/v1.45.7/internal/sync/singleflight/LICENSE|BSD-3-Clause
github.com/aws/aws-sdk-go|https://github.com/aws/aws-sdk-go/blob/v1.45.7/LICENSE.txt|Apache-2.0
github.com/aws/smithy-go/internal/sync/singleflight|https://github.com/aws/smithy-go/blob/v1.14.2/internal/sync/singleflight/LICENSE|BSD-3-Clause
github.com/aws/smithy-go|https://github.com/aws/smithy-go/blob/v1.14.2/LICENSE|Apache-2.0
github.com/awslabs/amazon-ecr-credential-helper/ecr-login|https://github.com/awslabs/amazon-ecr-credential-helper/blob/396b2034c795/ecr-login/LICENSE|Apache-2.0
github.com/beorn7/perks/quantile|https://github.com/beorn7/perks/blob/v1.0.1/LICENSE|MIT
github.com/bgentry/go-netrc/netrc|https://github.com/bgentry/go-netrc/blob/9fd32a8b3d3d/LICENSE|MIT
github.com/blang/semver|https://github.com/blang/semver/blob/v3.5.1/LICENSE|MIT
github.com/bmatcuk/doublestar/v4|https://github.com/bmatcuk/doublestar/blob/v4.6.0/LICENSE|MIT
github.com/briandowns/spinner|https://github.com/briandowns/spinner/blob/v1.23.0/LICENSE|Apache-2.0
github.com/buildkite/interpolate|https://github.com/buildkite/interpolate/blob/07f35b4ae251/LICENSE.txt|MIT
github.com/cenkalti/backoff|https://github.com/cenkalti/backoff/blob/v2.2.1/LICENSE|MIT
github.com/cespare/xxhash/v2|https://github.com/cespare/xxhash/blob/v2.2.0/LICENSE.txt|MIT
github.com/chai2010/gettext-go|https://github.com/chai2010/gettext-go/blob/v1.0.2/LICENSE|BSD-3-Clause
github.com/chartmuseum/auth|https://github.com/chartmuseum/auth/blob/v0.5.0/LICENSE|Apache-2.0
github.com/cheggaaa/pb/v3|https://github.com/cheggaaa/pb/blob/v3.1.4/v3/LICENSE|BSD-3-Clause
github.com/chrismellard/docker-credential-acr-env|https://github.com/chrismellard/docker-credential-acr-env/blob/fe33c00cee21/LICENSE|Apache-2.0
github.com/clbanning/mxj/v2|https://github.com/clbanning/mxj/blob/v2.5.6/LICENSE|MIT
github.com/cloudflare/circl|https://github.com/cloudflare/circl/blob/v1.3.3/LICENSE|BSD-3-Clause
github.com/cockroachdb/apd/v3|https://github.com/cockroachdb/apd/blob/v3.2.0/LICENSE|Apache-2.0
github.com/common-nighthawk/go-figure|https://github.com/common-nighthawk/go-figure/blob/734e95fb86be/LICENSE|MIT
github.com/containerd/cgroups/v3|https://github.com/containerd/cgroups/blob/v3.0.2/LICENSE|Apache-2.0
github.com/containerd/containerd|https://github.com/containerd/containerd/blob/v1.7.6/LICENSE|Apache-2.0
github.com/containerd/continuity|https://github.com/containerd/continuity/blob/v0.4.2/LICENSE|Apache-2.0
github.com/containerd/fifo|https://github.com/containerd/fifo/blob/v1.1.0/LICENSE|Apache-2.0
github.com/containerd/stargz-snapshotter/estargz|https://github.com/containerd/stargz-snapshotter/blob/estargz/v0.14.3/estargz/LICENSE|Apache-2.0
github.com/containerd/ttrpc|https://github.com/containerd/ttrpc/blob/v1.2.2/LICENSE|Apache-2.0
github.com/containerd/typeurl/v2|https://github.com/containerd/typeurl/blob/v2.1.1/LICENSE|Apache-2.0
github.com/containerd/typeurl|https://github.com/containerd/typeurl/blob/v1.0.2/LICENSE|Apache-2.0
github.com/containers/image/v5|https://github.com/containers/image/blob/v5.28.0/LICENSE|Apache-2.0
github.com/containers/libtrust|https://github.com/containers/libtrust/blob/c1716e8a8d01/LICENSE|Apache-2.0
github.com/containers/ocicrypt|https://github.com/containers/ocicrypt/blob/v1.1.8/LICENSE|Apache-2.0
github.com/cpuguy83/go-md2man/v2/md2man|https://github.com/cpuguy83/go-md2man/blob/v2.0.2/LICENSE.md|MIT
github.com/cpuguy83/go-md2man/v2|https://github.com/cpuguy83/go-md2man/blob/v2.0.2/LICENSE.md|MIT
github.com/cyphar/filepath-securejoin|https://github.com/cyphar/filepath-securejoin/blob/v0.2.4/LICENSE|BSD-3-Clause
github.com/davecgh/go-spew/spew|https://github.com/davecgh/go-spew/blob/v1.1.1/LICENSE|ISC
github.com/decred/dcrd/dcrec/secp256k1/v4|https://github.com/decred/dcrd/blob/dcrec/secp256k1/v4.2.0/dcrec/secp256k1/LICENSE|ISC
github.com/dgryski/go-rendezvous|https://github.com/dgryski/go-rendezvous/blob/9f7001d12a5f/LICENSE|MIT
github.com/didip/tollbooth/v6|https://github.com/didip/tollbooth/blob/v6.1.2/LICENSE|MIT
github.com/digitorus/pkcs7|https://github.com/digitorus/pkcs7/blob/3a137a874352/LICENSE|MIT
github.com/digitorus/timestamp|https://github.com/digitorus/timestamp/blob/d1ad5ca9624c/LICENSE|BSD-2-Clause
github.com/dimchansky/utfbom|https://github.com/dimchansky/utfbom/blob/v1.1.1/LICENSE|Apache-2.0
github.com/dlclark/regexp2|https://github.com/dlclark/regexp2/blob/v1.4.0/LICENSE|MIT
github.com/docker/distribution|https://github.com/docker/distribution/blob/v2.8.2/LICENSE|Apache-2.0
github.com/docker/docker-credential-helpers/credentials|https://github.com/docker/docker-credential-helpers/blob/v0.8.0/LICENSE|MIT
github.com/docker/go-connections|https://github.com/docker/go-connections/blob/v0.4.0/LICENSE|Apache-2.0
github.com/docker/go-events|https://github.com/docker/go-events/blob/e31b211e4f1c/LICENSE|Apache-2.0
github.com/docker/go-metrics|https://github.com/docker/go-metrics/blob/v0.0.1/LICENSE|Apache-2.0
github.com/docker/go-units|https://github.com/docker/go-units/blob/v0.5.0/LICENSE|Apache-2.0
github.com/dustin/go-humanize|https://github.com/dustin/go-humanize/blob/v1.0.1/LICENSE|MIT
github.com/ebitengine/purego|https://github.com/ebitengine/purego/blob/ee8dcecc618f/LICENSE|Apache-2.0
github.com/emicklei/go-restful/v3|https://github.com/emicklei/go-restful/blob/v3.10.2/LICENSE|MIT
github.com/emicklei/proto|https://github.com/emicklei/proto/blob/v1.10.0/LICENSE|MIT
github.com/emirpasic/gods|https://github.com/emirpasic/gods/blob/v1.18.1/LICENSE|BSD-2-Clause
github.com/evanphx/json-patch|https://github.com/evanphx/json-patch/blob/v5.6.0/LICENSE|BSD-3-Clause
github.com/exponent-io/jsonpath|https://github.com/exponent-io/jsonpath/blob/d6023ce2651d/LICENSE|MIT
github.com/fatih/color|https://github.com/fatih/color/blob/v1.15.0/LICENSE.md|MIT
github.com/felixge/httpsnoop|https://github.com/felixge/httpsnoop/blob/v1.0.3/LICENSE.txt|MIT
github.com/fsnotify/fsnotify|https://github.com/fsnotify/fsnotify/blob/v1.6.0/LICENSE|BSD-3-Clause
github.com/gabriel-vasile/mimetype|https://github.com/gabriel-vasile/mimetype/blob/v1.4.2/LICENSE|MIT
github.com/ghodss/yaml|https://github.com/ghodss/yaml/blob/v1.0.0/LICENSE|MIT
github.com/go-asn1-ber/asn1-ber|https://github.com/go-asn1-ber/asn1-ber/blob/v1.5.5/LICENSE|MIT
github.com/go-chi/chi|https://github.com/go-chi/chi/blob/v4.1.2/LICENSE|MIT
github.com/go-errors/errors|https://github.com/go-errors/errors/blob/v1.4.2/LICENSE.MIT|MIT
github.com/go-git/gcfg|https://github.com/go-git/gcfg/blob/3a3c6141e376/LICENSE|BSD-3-Clause
github.com/go-git/go-billy/v5|https://github.com/go-git/go-billy/blob/v5.4.1/LICENSE|Apache-2.0
github.com/go-git/go-git/v5|https://github.com/go-git/go-git/blob/v5.7.0/LICENSE|Apache-2.0
github.com/go-gorp/gorp/v3|https://github.com/go-gorp/gorp/blob/v3.0.5/LICENSE|MIT
github.com/go-ini/ini|https://github.com/go-ini/ini/blob/v1.67.0/LICENSE|Apache-2.0
github.com/go-jose/go-jose/v3/json|https://github.com/go-jose/go-jose/blob/v3.0.0/json/LICENSE|BSD-3-Clause
github.com/go-jose/go-jose/v3|https://github.com/go-jose/go-jose/blob/v3.0.0/LICENSE|Apache-2.0
github.com/go-ldap/ldap/v3|https://github.com/go-ldap/ldap/blob/v3.4.6/v3/LICENSE|MIT
github.com/go-logr/logr|https://github.com/go-logr/logr/blob/v1.2.4/LICENSE|Apache-2.0
github.com/go-logr/stdr|https://github.com/go-logr/stdr/blob/v1.2.2/LICENSE|Apache-2.0
github.com/go-openapi/analysis|https://github.com/go-openapi/analysis/blob/v0.21.4/LICENSE|Apache-2.0
github.com/go-openapi/errors|https://github.com/go-openapi/errors/blob/v0.20.4/LICENSE|Apache-2.0
github.com/go-openapi/jsonpointer|https://github.com/go-openapi/jsonpointer/blob/v0.19.6/LICENSE|Apache-2.0
github.com/go-openapi/jsonreference|https://github.com/go-openapi/jsonreference/blob/v0.20.2/LICENSE|Apache-2.0
github.com/go-openapi/loads|https://github.com/go-openapi/loads/blob/v0.21.2/LICENSE|Apache-2.0
github.com/go-openapi/runtime|https://github.com/go-openapi/runtime/blob/v0.26.0/LICENSE|Apache-2.0
github.com/go-openapi/spec|https://github.com/go-openapi/spec/blob/v0.20.9/LICENSE|Apache-2.0
github.com/go-openapi/strfmt|https://github.com/go-openapi/strfmt/blob/v0.21.7/LICENSE|Apache-2.0
github.com/go-openapi/swag|https://github.com/go-openapi/swag/blob/v0.22.4/LICENSE|Apache-2.0
github.com/go-openapi/validate|https://github.com/go-openapi/validate/blob/v0.22.1/LICENSE|Apache-2.0
github.com/go-pkgz/expirable-cache|https://github.com/go-pkgz/expirable-cache/blob/v0.0.3/LICENSE|MIT
github.com/go-playground/locales|https://github.com/go-playground/locales/blob/v0.14.1/LICENSE|MIT
github.com/go-playground/universal-translator|https://github.com/go-playground/universal-translator/blob/v0.18.1/LICENSE|MIT
github.com/go-playground/validator/v10|https://github.com/go-playground/validator/blob/v10.15.1/LICENSE|MIT
github.com/go-redis/redis/v8|https://github.com/go-redis/redis/blob/v8.11.5/LICENSE|BSD-2-Clause
github.com/gobwas/glob|https://github.com/gobwas/glob/blob/v0.2.3/LICENSE|MIT
github.com/goccy/go-json|https://github.com/goccy/go-json/blob/v0.10.2/LICENSE|MIT
github.com/gofrs/uuid|https://github.com/gofrs/uuid/blob/v4.4.0/LICENSE|MIT
github.com/gogo/protobuf/proto|https://github.com/gogo/protobuf/blob/v1.3.2/LICENSE|BSD-3-Clause
github.com/gogo/protobuf|https://github.com/gogo/protobuf/blob/v1.3.2/LICENSE|BSD-3-Clause
github.com/golang-jwt/jwt/v4|https://github.com/golang-jwt/jwt/blob/v4.5.0/LICENSE|MIT
github.com/golang-jwt/jwt/v5|https://github.com/golang-jwt/jwt/blob/v5.0.0/LICENSE|MIT
github.com/golang-jwt/jwt|https://github.com/golang-jwt/jwt/blob/v3.2.2/LICENSE|MIT
github.com/golang/groupcache/lru|https://github.com/golang/groupcache/blob/41bb18bfe9da/LICENSE|Apache-2.0
github.com/golang/groupcache|https://github.com/golang/groupcache/blob/41bb18bfe9da/LICENSE|Apache-2.0
github.com/golang/protobuf/proto|https://github.com/golang/protobuf/blob/v1.5.3/LICENSE|BSD-3-Clause
github.com/golang/protobuf|https://github.com/golang/protobuf/blob/v1.5.3/LICENSE|BSD-3-Clause
github.com/golang/snappy|https://github.com/golang/snappy/blob/v0.0.4/LICENSE|BSD-3-Clause
github.com/google/btree|https://github.com/google/btree/blob/v1.1.2/LICENSE|Apache-2.0
github.com/google/certificate-transparency-go|https://github.com/google/certificate-transparency-go/blob/v1.1.6/LICENSE|Apache-2.0
github.com/google/go-cmp/cmp|https://github.com/google/go-cmp/blob/v0.5.9/LICENSE|BSD-3-Clause
github.com/google/go-querystring/query|https://github.com/google/go-querystring/blob/v1.1.0/LICENSE|BSD-3-Clause
github.com/google/gofuzz|https://github.com/google/gofuzz/blob/v1.2.0/LICENSE|Apache-2.0
github.com/google/licenseclassifier/v2|https://github.com/google/licenseclassifier/blob/v2.0.0/v2/LICENSE|Apache-2.0
github.com/google/s2a-go|https://github.com/google/s2a-go/blob/v0.1.5/LICENSE.md|Apache-2.0
github.com/google/shlex|https://github.com/google/shlex/blob/e7afc7fbc510/COPYING|Apache-2.0
github.com/google/uuid|https://github.com/google/uuid/blob/v1.3.1/LICENSE|BSD-3-Clause
github.com/google/wire|https://github.com/google/wire/blob/v0.5.0/LICENSE|Apache-2.0
github.com/googleapis/enterprise-certificate-proxy/client|https://github.com/googleapis/enterprise-certificate-proxy/blob/v0.2.5/LICENSE|Apache-2.0
github.com/googleapis/gax-go/v2|https://github.com/googleapis/gax-go/blob/v2.12.0/v2/LICENSE|BSD-3-Clause
github.com/gorilla/handlers|https://github.com/gorilla/handlers/blob/v1.5.1/LICENSE|BSD-2-Clause
github.com/gorilla/mux|https://github.com/gorilla/mux/blob/v1.8.0/LICENSE|BSD-3-Clause
github.com/gorilla/schema|https://github.com/gorilla/schema/blob/v1.2.0/LICENSE|BSD-3-Clause
github.com/gorilla/securecookie|https://github.com/gorilla/securecookie/blob/v1.1.1/LICENSE|BSD-3-Clause
github.com/gorilla/sessions|https://github.com/gorilla/sessions/blob/v1.2.1/LICENSE|BSD-3-Clause
github.com/gorilla/websocket|https://github.com/gorilla/websocket/blob/v1.5.0/LICENSE|BSD-2-Clause
github.com/gosuri/uitable/util/wordwrap|https://github.com/gosuri/uitable/blob/v0.0.4/util/wordwrap/LICENSE.md|MIT
github.com/gosuri/uitable|https://github.com/gosuri/uitable/blob/v0.0.4/LICENSE|MIT
github.com/gregjones/httpcache|https://github.com/gregjones/httpcache/blob/9cad4c3443a7/LICENSE.txt|MIT
github.com/hashicorp/errwrap|https://github.com/hashicorp/errwrap/blob/v1.1.0/LICENSE|MPL-2.0
github.com/hashicorp/go-cleanhttp|https://github.com/hashicorp/go-cleanhttp/blob/v0.5.2/LICENSE|MPL-2.0
github.com/hashicorp/go-getter|https://github.com/hashicorp/go-getter/blob/v1.7.1/LICENSE|MPL-2.0
github.com/hashicorp/go-multierror|https://github.com/hashicorp/go-multierror/blob/v1.1.1/LICENSE|MPL-2.0
github.com/hashicorp/go-retryablehttp|https://github.com/hashicorp/go-retryablehttp/blob/v0.7.4/LICENSE|MPL-2.0
github.com/hashicorp/go-safetemp|https://github.com/hashicorp/go-safetemp/blob/v1.0.0/LICENSE|MPL-2.0
github.com/hashicorp/go-uuid|https://github.com/hashicorp/go-uuid/blob/v1.0.3/LICENSE|MPL-2.0
github.com/hashicorp/go-version|https://github.com/hashicorp/go-version/blob/v1.6.0/LICENSE|MPL-2.0
github.com/hashicorp/golang-lru/v2/simplelru|https://github.com/hashicorp/golang-lru/blob/v2.0.6/simplelru/LICENSE_list|BSD-3-Clause
github.com/hashicorp/golang-lru/v2|https://github.com/hashicorp/golang-lru/blob/v2.0.6/LICENSE|MPL-2.0
github.com/hashicorp/hcl/v2|https://github.com/hashicorp/hcl/blob/v2.17.0/LICENSE|MPL-2.0
github.com/hashicorp/hcl|https://github.com/hashicorp/hcl/blob/v1.0.0/LICENSE|MPL-2.0
github.com/huandu/xstrings|https://github.com/huandu/xstrings/blob/v1.4.0/LICENSE|MIT
github.com/imdario/mergo|https://github.com/imdario/mergo/blob/v0.3.15/LICENSE|BSD-3-Clause
github.com/in-toto/in-toto-golang|https://github.com/in-toto/in-toto-golang/blob/v0.9.0/LICENSE|Apache-2.0
github.com/inconshreveable/mousetrap|https://github.com/inconshreveable/mousetrap/blob/v1.1.0/LICENSE|Apache-2.0
github.com/jbenet/go-context/io|https://github.com/jbenet/go-context/blob/d14ea06fba99/LICENSE|MIT
github.com/jbenet/go-context|https://github.com/jbenet/go-context/blob/d14ea06fba99/LICENSE|MIT
github.com/jedisct1/go-minisign|https://github.com/jedisct1/go-minisign/blob/1c139d1cc84b/LICENSE|MIT
github.com/jmespath/go-jmespath|https://github.com/jmespath/go-jmespath/blob/v0.4.0/LICENSE|Apache-2.0
github.com/jmoiron/sqlx|https://github.com/jmoiron/sqlx/blob/v1.3.5/LICENSE|MIT
github.com/josharian/intern|https://github.com/josharian/intern/blob/v1.0.0/license.md|MIT
github.com/json-iterator/go|https://github.com/json-iterator/go/blob/v1.1.12/LICENSE|MIT
github.com/jtolds/gls|https://github.com/jtolds/gls/blob/v4.20.0/LICENSE|MIT
github.com/kballard/go-shellquote|https://github.com/kballard/go-shellquote/blob/95032a82bc51/LICENSE|MIT
github.com/kevinburke/ssh_config|https://github.com/kevinburke/ssh_config/blob/v1.2.0/LICENSE|MIT
github.com/klauspost/compress/flate|https://github.com/klauspost/compress/blob/v1.16.7/LICENSE|Apache-2.0
github.com/klauspost/compress/internal/snapref|https://github.com/klauspost/compress/blob/v1.16.7/internal/snapref/LICENSE|BSD-3-Clause
github.com/klauspost/compress/zstd/internal/xxhash|https://github.com/klauspost/compress/blob/v1.16.7/zstd/internal/xxhash/LICENSE.txt|MIT
github.com/klauspost/compress|https://github.com/klauspost/compress/blob/v1.16.7/LICENSE|Apache-2.0
github.com/klauspost/pgzip|https://github.com/klauspost/pgzip/blob/v1.2.6/LICENSE|MIT
github.com/knqyf263/go-apk-version|https://github.com/knqyf263/go-apk-version/blob/041fdbb8563f/LICENSE|Apache-2.0
github.com/knqyf263/go-deb-version|https://github.com/knqyf263/go-deb-version/blob/3ed183d23422/LICENSE|MIT
github.com/knqyf263/go-rpm-version|https://github.com/knqyf263/go-rpm-version/blob/631e686d1075/LICENSE|MIT
github.com/knqyf263/nested|https://github.com/knqyf263/nested/blob/v0.0.1/LICENSE|MIT
github.com/kylelemons/godebug|https://github.com/kylelemons/godebug/blob/v1.1.0/LICENSE|Apache-2.0
github.com/lann/builder|https://github.com/lann/builder/blob/47ae307949d0/LICENSE|MIT
github.com/lann/ps|https://github.com/lann/ps/blob/62de8c46ede0/LICENSE|MIT
github.com/leodido/go-urn|https://github.com/leodido/go-urn/blob/v1.2.4/LICENSE|MIT
github.com/lestrrat-go/blackmagic|https://github.com/lestrrat-go/blackmagic/blob/v1.0.1/LICENSE|MIT
github.com/lestrrat-go/httpcc|https://github.com/lestrrat-go/httpcc/blob/v1.0.1/LICENSE|MIT
github.com/lestrrat-go/httprc|https://github.com/lestrrat-go/httprc/blob/v1.0.4/LICENSE|MIT
github.com/lestrrat-go/jwx/v2|https://github.com/lestrrat-go/jwx/blob/v2.0.11/LICENSE|MIT
github.com/lestrrat-go/option|https://github.com/lestrrat-go/option/blob/v1.0.1/LICENSE|MIT
github.com/liamg/iamgo|https://github.com/liamg/iamgo/blob/v0.0.9/LICENSE|MIT
github.com/liamg/jfather|https://github.com/liamg/jfather/blob/v0.0.7/LICENSE|MIT
github.com/liamg/memoryfs|https://github.com/liamg/memoryfs/blob/v1.4.3/LICENSE|MIT
github.com/lib/pq|https://github.com/lib/pq/blob/v1.10.9/LICENSE.md|MIT
github.com/liggitt/tabwriter|https://github.com/liggitt/tabwriter/blob/89fcab3d43de/LICENSE|BSD-3-Clause
github.com/lunixbochs/struc|https://github.com/lunixbochs/struc/blob/784aaebc1d40/LICENSE|MIT
github.com/magiconair/properties|https://github.com/magiconair/properties/blob/v1.8.7/LICENSE.md|BSD-2-Clause
github.com/mailru/easyjson|https://github.com/mailru/easyjson/blob/v0.7.7/LICENSE|MIT
github.com/masahiro331/go-disk|https://github.com/masahiro331/go-disk/blob/c8da316f91ac/LICENSE|MIT
github.com/masahiro331/go-ebs-file|https://github.com/masahiro331/go-ebs-file/blob/005c81d4ae43/LICENSE|MIT
github.com/masahiro331/go-mvn-version|https://github.com/masahiro331/go-mvn-version/blob/d3157d602a08/LICENCE|Apache-2.0
github.com/mattn/go-colorable|https://github.com/mattn/go-colorable/blob/v0.1.13/LICENSE|MIT
github.com/mattn/go-isatty|https://github.com/mattn/go-isatty/blob/v0.0.19/LICENSE|MIT
github.com/mattn/go-runewidth|https://github.com/mattn/go-runewidth/blob/v0.0.15/LICENSE|MIT
github.com/mattn/go-sqlite3|https://github.com/mattn/go-sqlite3/blob/v1.14.17/LICENSE|MIT
github.com/matttproud/golang_protobuf_extensions/pbutil|https://github.com/matttproud/golang_protobuf_extensions/blob/v1.0.4/LICENSE|Apache-2.0
github.com/microsoft/go-rustaudit|https://github.com/microsoft/go-rustaudit/blob/204dfee52032/LICENSE|MIT
github.com/miekg/pkcs11|https://github.com/miekg/pkcs11/blob/v1.1.1/LICENSE|BSD-3-Clause
github.com/mitchellh/copystructure|https://github.com/mitchellh/copystructure/blob/v1.2.0/LICENSE|MIT
github.com/mitchellh/go-homedir|https://github.com/mitchellh/go-homedir/blob/v1.1.0/LICENSE|MIT
github.com/mitchellh/go-testing-interface|https://github.com/mitchellh/go-testing-interface/blob/v1.14.1/LICENSE|MIT
github.com/mitchellh/go-wordwrap|https://github.com/mitchellh/go-wordwrap/blob/v1.0.1/LICENSE.md|MIT
github.com/mitchellh/hashstructure/v2|https://github.com/mitchellh/hashstructure/blob/v2.0.2/LICENSE|MIT
github.com/mitchellh/mapstructure|https://github.com/mitchellh/mapstructure/blob/v1.5.0/LICENSE|MIT
github.com/mitchellh/reflectwalk|https://github.com/mitchellh/reflectwalk/blob/v1.0.2/LICENSE|MIT
github.com/moby/buildkit|https://github.com/moby/buildkit/blob/v0.11.6/LICENSE|Apache-2.0
github.com/moby/locker|https://github.com/moby/locker/blob/v1.0.1/LICENSE|Apache-2.0
github.com/moby/spdystream|https://github.com/moby/spdystream/blob/v0.2.0/LICENSE|Apache-2.0
github.com/moby/sys/mountinfo|https://github.com/moby/sys/blob/mountinfo/v0.6.2/mountinfo/LICENSE|Apache-2.0
github.com/moby/sys/sequential|https://github.com/moby/sys/blob/sequential/v0.5.0/sequential/LICENSE|Apache-2.0
github.com/moby/sys/signal|https://github.com/moby/sys/blob/signal/v0.7.0/signal/LICENSE|Apache-2.0
github.com/moby/term|https://github.com/moby/term/blob/v0.5.0/LICENSE|Apache-2.0
github.com/modern-go/concurrent|https://github.com/modern-go/concurrent/blob/bacd9c7ef1dd/LICENSE|Apache-2.0
github.com/modern-go/reflect2|https://github.com/modern-go/reflect2/blob/v1.0.2/LICENSE|Apache-2.0
github.com/monochromegane/go-gitignore|https://github.com/monochromegane/go-gitignore/blob/205db1a8cc00/LICENSE|MIT
github.com/morikuni/aec|https://github.com/morikuni/aec/blob/v1.0.0/LICENSE|MIT
github.com/mpvl/unique|https://github.com/mpvl/unique/blob/cbe035fff7de/LICENSE|MIT
github.com/munnerz/goautoneg|https://github.com/munnerz/goautoneg/blob/a7dc8b61c822/LICENSE|BSD-3-Clause
github.com/nmcclain/asn1-ber|https://github.com/nmcclain/asn1-ber/blob/2661553a0484/LICENSE|BSD-3-Clause
github.com/nmcclain/ldap|https://github.com/nmcclain/ldap/blob/7f8d1e44eeba/LICENSE|BSD-3-Clause
github.com/notaryproject/notation-core-go|https://github.com/notaryproject/notation-core-go/blob/v1.0.0/LICENSE|Apache-2.0
github.com/notaryproject/notation-go|https://github.com/notaryproject/notation-go/blob/v1.0.0/LICENSE|Apache-2.0
github.com/nozzle/throttler|https://github.com/nozzle/throttler/blob/2ea982251481/LICENSE|Apache-2.0
github.com/oklog/ulid|https://github.com/oklog/ulid/blob/v1.3.1/LICENSE|Apache-2.0
github.com/oleiade/reflections|https://github.com/oleiade/reflections/blob/v1.0.1/LICENSE|MIT
github.com/olekukonko/tablewriter|https://github.com/olekukonko/tablewriter/blob/v0.0.5/LICENSE.md|MIT
github.com/opencontainers/distribution-spec/specs-go|https://github.com/opencontainers/distribution-spec/blob/067a0f5b0e25/specs-go/LICENSE|Apache-2.0
github.com/opencontainers/go-digest|https://github.com/opencontainers/go-digest/blob/v1.0.0/LICENSE|Apache-2.0
github.com/opencontainers/image-spec/specs-go|https://github.com/opencontainers/image-spec/blob/v1.1.0-rc5/LICENSE|Apache-2.0
github.com/opencontainers/image-spec|https://github.com/opencontainers/image-spec/blob/v1.1.0-rc5/LICENSE|Apache-2.0
github.com/opencontainers/runc/libcontainer/user|https://github.com/opencontainers/runc/blob/v1.1.9/LICENSE|Apache-2.0
github.com/opencontainers/runtime-spec/specs-go|https://github.com/opencontainers/runtime-spec/blob/v1.1.0/LICENSE|Apache-2.0
github.com/opencontainers/selinux/go-selinux|https://github.com/opencontainers/selinux/blob/v1.11.0/LICENSE|Apache-2.0
github.com/opencontainers/umoci/third_party/shared|https://github.com/opencontainers/umoci/blob/e60a0cc726e6/third_party/shared/COPYING|Apache-2.0
github.com/opencontainers/umoci|https://github.com/opencontainers/umoci/blob/e60a0cc726e6/COPYING|Apache-2.0
github.com/opentracing/opentracing-go|https://github.com/opentracing/opentracing-go/blob/v1.2.0/LICENSE|Apache-2.0
github.com/outcaste-io/ristretto/z|https://github.com/outcaste-io/ristretto/blob/v0.2.1/z/LICENSE|MIT
github.com/outcaste-io/ristretto|https://github.com/outcaste-io/ristretto/blob/v0.2.1/LICENSE|Apache-2.0
github.com/package-url/packageurl-go|https://github.com/package-url/packageurl-go/blob/f8bb31c1f10b/LICENSE|MIT
github.com/pborman/uuid|https://github.com/pborman/uuid/blob/v1.2.1/LICENSE|BSD-3-Clause
github.com/pelletier/go-toml/v2|https://github.com/pelletier/go-toml/blob/v2.0.8/LICENSE|MIT
github.com/peterbourgon/diskv|https://github.com/peterbourgon/diskv/blob/v2.0.1/LICENSE|MIT
github.com/phayes/freeport|https://github.com/phayes/freeport/blob/74d24b5ae9f5/LICENSE.md|BSD-3-Clause
github.com/philhofer/fwd|https://github.com/philhofer/fwd/blob/v1.1.2/LICENSE.md|MIT
github.com/pjbgf/sha1cd|https://github.com/pjbgf/sha1cd/blob/v0.3.0/LICENSE|Apache-2.0
github.com/pkg/browser|https://github.com/pkg/browser/blob/681adbf594b8/LICENSE|BSD-2-Clause
github.com/pkg/errors|https://github.com/pkg/errors/blob/v0.9.1/LICENSE|BSD-2-Clause
github.com/pmezard/go-difflib/difflib|https://github.com/pmezard/go-difflib/blob/v1.0.0/LICENSE|BSD-3-Clause
github.com/proglottis/gpgme|https://github.com/proglottis/gpgme/blob/v0.1.3/LICENSE|BSD-3-Clause
github.com/project-zot/mockoidc|https://github.com/project-zot/mockoidc/blob/f607b4b5fb97/LICENSE|MIT
github.com/prometheus/client_golang/prometheus|https://github.com/prometheus/client_golang/blob/v1.16.0/LICENSE|Apache-2.0
github.com/prometheus/client_model/go|https://github.com/prometheus/client_model/blob/v0.4.0/LICENSE|Apache-2.0
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg|https://github.com/prometheus/common/blob/v0.44.0/internal/bitbucket.org/ww/goautoneg/README.txt|BSD-3-Clause
github.com/prometheus/common|https://github.com/prometheus/common/blob/v0.44.0/LICENSE|Apache-2.0
github.com/prometheus/procfs|https://github.com/prometheus/procfs/blob/v0.10.1/LICENSE|Apache-2.0
github.com/puzpuzpuz/xsync/v2|https://github.com/puzpuzpuz/xsync/blob/v2.4.1/LICENSE|MIT
github.com/rcrowley/go-metrics|https://github.com/rcrowley/go-metrics/blob/cf1acfcdf475/LICENSE|BSD-2-Clause-FreeBSD
github.com/remyoudompheng/bigfft|https://github.com/remyoudompheng/bigfft/blob/24d4a6f8daec/LICENSE|BSD-3-Clause
github.com/rivo/uniseg|https://github.com/rivo/uniseg/blob/v0.4.4/LICENSE.txt|MIT
github.com/rootless-containers/proto/go-proto|Unknown|Unknown
github.com/rs/zerolog|https://github.com/rs/zerolog/blob/master/LICENSE|MIT
github.com/russross/blackfriday/v2|https://github.com/russross/blackfriday/blob/master/v2/LICENSE.txt|BSD-2-Clause
github.com/ryanuber/go-glob|https://github.com/ryanuber/go-glob/blob/master/LICENSE|MIT
github.com/saracen/walker|https://github.com/saracen/walker/blob/master/LICENSE|MIT
github.com/secure-systems-lab/go-securesystemslib/cjson|https://github.com/secure-systems-lab/go-securesystemslib/blob/master/cjson/LICENSE|MIT
github.com/secure-systems-lab/go-securesystemslib|https://github.com/secure-systems-lab/go-securesystemslib/blob/master/LICENSE|MIT
github.com/segmentio/ksuid|https://github.com/segmentio/ksuid/blob/master/LICENSE.md|MIT
github.com/sergi/go-diff/diffmatchpatch|https://github.com/sergi/go-diff/blob/master/diffmatchpatch/LICENSE|MIT
github.com/shibumi/go-pathspec|https://github.com/shibumi/go-pathspec/blob/master/LICENSE|Apache-2.0
github.com/sirupsen/logrus|https://github.com/sirupsen/logrus/blob/master/LICENSE|MIT
github.com/smartystreets/assertions|https://github.com/smartystreets/assertions/blob/master/LICENSE.md|MIT
github.com/smartystreets/assertions/internal/go-diff/diffmatchpatch|https://github.com/smartystreets/assertions/blob/master/internal/go-diff/diffmatchpatch/LICENSE|MIT
github.com/smartystreets/assertions/internal/go-render/render|https://github.com/smartystreets/assertions/blob/master/internal/go-render/render/LICENSE|BSD-3-Clause
github.com/smartystreets/assertions/internal/oglematchers|https://github.com/smartystreets/assertions/blob/master/internal/oglematchers/LICENSE|Apache-2.0
github.com/smartystreets/goconvey|https://github.com/smartystreets/goconvey/blob/master/LICENSE.md|MIT
github.com/soheilhy/cmux|https://github.com/soheilhy/cmux/blob/master/LICENSE|Apache-2.0
github.com/spf13/afero|https://github.com/spf13/afero/blob/master/LICENSE.txt|Apache-2.0
github.com/spf13/cast|https://github.com/spf13/cast/blob/master/LICENSE|MIT
github.com/spf13/cobra|https://github.com/spf13/cobra/blob/master/LICENSE.txt|Apache-2.0
github.com/spf13/jwalterweatherman|https://github.com/spf13/jwalterweatherman/blob/master/LICENSE|MIT
github.com/spf13/pflag|https://github.com/spf13/pflag/blob/master/LICENSE|BSD-3-Clause
github.com/spf13/viper|https://github.com/spf13/viper/blob/master/LICENSE|MIT
github.com/stefanberger/go-pkcs11uri|https://github.com/stefanberger/go-pkcs11uri/blob/master/LICENSE|Apache-2.0
github.com/stretchr/objx|https://github.com/stretchr/objx/blob/master/LICENSE|MIT
github.com/stretchr/testify|https://github.com/stretchr/testify/blob/master/LICENSE|MIT
github.com/subosito/gotenv|https://github.com/subosito/gotenv/blob/master/LICENSE|MIT
github.com/swaggo/files|https://github.com/swaggo/files/blob/master/LICENSE|MIT
github.com/swaggo/http-swagger|https://github.com/swaggo/http-swagger/blob/master/LICENSE|MIT
github.com/swaggo/swag|https://github.com/swaggo/swag/blob/master/license|MIT
github.com/tent/canonical-json-go|https://github.com/tent/canonical-json-go/blob/master/LICENSE|BSD-3-Clause
github.com/thales-e-security/pool|https://github.com/thales-e-security/pool/blob/master/LICENSE|Apache-2.0
github.com/ThalesIgnite/crypto11|https://github.com/ThalesIgnite/crypto11/blob/master/LICENCE.txt|MIT
github.com/theupdateframework/go-tuf|https://github.com/theupdateframework/go-tuf/blob/master/LICENSE|BSD-3-Clause
github.com/tmccombs/hcl2json|https://github.com/tmccombs/hcl2json/blob/master/LICENSE|Apache-2.0
github.com/tmc/grpc-websocket-proxy/wsproxy|https://github.com/tmc/grpc-websocket-proxy/blob/master/wsproxy/LICENSE|MIT
github.com/twitchtv/twirp|https://github.com/twitchtv/twirp/blob/master/LICENSE|Apache-2.0
github.com/ulikunitz/xz|https://github.com/ulikunitz/xz/blob/master/LICENSE|BSD-3-Clause
github.com/urfave/cli|https://github.com/urfave/cli/blob/master/LICENSE|MIT
github.com/urfave/cli/v2|https://github.com/urfave/cli/blob/master/v2/LICENSE|MIT
github.com/vbatts/go-mtree|https://github.com/vbatts/go-mtree/blob/master/LICENSE|BSD-3-Clause
github.com/vbatts/go-mtree/pkg/govis|https://github.com/vbatts/go-mtree/blob/master/pkg/govis/COPYING|Apache-2.0
github.com/vbatts/tar-split/archive/tar|https://github.com/vbatts/tar-split/blob/master/archive/tar/LICENSE|BSD-3-Clause
github.com/vbauerster/mpb/v7/cwriter|Unknown|Unknown
github.com/vbauerster/mpb/v7/decor|Unknown|Unknown
github.com/vbauerster/mpb/v7/internal|Unknown|Unknown
github.com/vbauerster/mpb/v7|Unknown|Unknown
github.com/vektah/gqlparser/v2|https://github.com/vektah/gqlparser/blob/master/v2/LICENSE|MIT
github.com/VividCortex/ewma|https://github.com/VividCortex/ewma/blob/master/LICENSE|MIT
github.com/xanzy/go-gitlab|https://github.com/xanzy/go-gitlab/blob/master/LICENSE|Apache-2.0
github.com/xanzy/ssh-agent|https://github.com/xanzy/ssh-agent/blob/master/LICENSE|Apache-2.0
github.com/xeipuuv/gojsonpointer|https://github.com/xeipuuv/gojsonpointer/blob/master/LICENSE-APACHE-2.0.txt|Apache-2.0
github.com/xeipuuv/gojsonreference|https://github.com/xeipuuv/gojsonreference/blob/master/LICENSE-APACHE-2.0.txt|Apache-2.0
github.com/xiang90/probing|https://github.com/xiang90/probing/blob/master/LICENSE|MIT
github.com/yashtewari/glob-intersection|https://github.com/yashtewari/glob-intersection/blob/master/LICENSE|Apache-2.0
github.com/zclconf/go-cty/cty|https://github.com/zclconf/go-cty/blob/master/cty/LICENSE|MIT
github.com/zclconf/go-cty-yaml|https://github.com/zclconf/go-cty-yaml/blob/master/LICENSE|Apache-2.0
github.com/zeebo/errs|https://github.com/zeebo/errs/blob/master/LICENSE|MIT
go.etcd.io/bbolt|Unknown|MIT
go.etcd.io/etcd/api/v3|Unknown|Apache-2.0
go.etcd.io/etcd/api/v3/version|Unknown|Apache-2.0
go.etcd.io/etcd/client/pkg/v3|Unknown|Apache-2.0
go.etcd.io/etcd/client/v2|Unknown|Apache-2.0
go.etcd.io/etcd/client/v3|Unknown|Apache-2.0
go.etcd.io/etcd/etcdctl/v3/ctlv3/command|Unknown|Apache-2.0
go.etcd.io/etcd/etcdctl/v3|Unknown|Apache-2.0
go.etcd.io/etcd/etcdutl/v3|Unknown|Apache-2.0
go.etcd.io/etcd/pkg/v3|Unknown|Apache-2.0
go.etcd.io/etcd/raft/v3|Unknown|Apache-2.0
go.etcd.io/etcd/server/v3|Unknown|Apache-2.0
go.etcd.io/etcd/tests/v3/integration|Unknown|Apache-2.0
go.etcd.io/etcd/v3|Unknown|Apache-2.0
golang.org/x/crypto/ed25519|Unknown|BSD-3-Clause
golang.org/x/crypto/md4|Unknown|BSD-3-Clause
golang.org/x/crypto/pkcs12|Unknown|BSD-3-Clause
golang.org/x/crypto/ripemd160|Unknown|BSD-3-Clause
golang.org/x/crypto/sha3|Unknown|BSD-3-Clause
golang.org/x/crypto|Unknown|BSD-3-Clause
golang.org/x/mod/semver|Unknown|BSD-3-Clause
golang.org/x/mod|Unknown|BSD-3-Clause
golang.org/x/net/context/ctxhttp|Unknown|BSD-3-Clause
golang.org/x/net/context|Unknown|BSD-3-Clause
golang.org/x/net/idna|Unknown|BSD-3-Clause
golang.org/x/net/publicsuffix|Unknown|BSD-3-Clause
golang.org/x/net|Unknown|BSD-3-Clause
golang.org/x/net/webdav|Unknown|BSD-3-Clause
golang.org/x/oauth2|Unknown|BSD-3-Clause
golang.org/x/sync/errgroup|Unknown|BSD-3-Clause
golang.org/x/sync/singleflight|Unknown|BSD-3-Clause
golang.org/x/sys/execabs|Unknown|BSD-3-Clause
golang.org/x/sys|Unknown|BSD-3-Clause
golang.org/x/term|Unknown|BSD-3-Clause
golang.org/x/text|Unknown|BSD-3-Clause
golang.org/x/time/rate|Unknown|BSD-3-Clause
golang.org/x/tools|Unknown|BSD-3-Clause
golang.org/x/xerrors|Unknown|BSD-3-Clause
go.mongodb.org/mongo-driver|Unknown|Apache-2.0
go.mozilla.org/pkcs7|Unknown|MIT
google.golang.org/api/googleapi|Unknown|BSD-3-Clause
google.golang.org/api/internal/third_party/uritemplates|Unknown|BSD-3-Clause
google.golang.org/api|Unknown|BSD-3-Clause
google.golang.org/appengine|Unknown|Apache-2.0
google.golang.org/genproto/googleapis/rpc/status|Unknown|Apache-2.0
google.golang.org/genproto/googleapis/rpc|Unknown|Apache-2.0
google.golang.org/genproto/googleapis|Unknown|Apache-2.0
google.golang.org/genproto|Unknown|Apache-2.0
google.golang.org/grpc|Unknown|Apache-2.0
google.golang.org/protobuf|Unknown|BSD-3-Clause
go.opencensus.io|Unknown|Apache-2.0
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc|Unknown|Apache-2.0
go.opentelemetry.io/contrib|Unknown|Apache-2.0
go.opentelemetry.io/otel/exporters/otlp|Unknown|Apache-2.0
go.opentelemetry.io/otel/metric|Unknown|Apache-2.0
go.opentelemetry.io/otel/sdk/export/metric|Unknown|Apache-2.0
go.opentelemetry.io/otel/sdk/metric|Unknown|Apache-2.0
go.opentelemetry.io/otel/sdk/resource|Unknown|Apache-2.0
go.opentelemetry.io/otel/sdk|Unknown|Apache-2.0
go.opentelemetry.io/otel/trace|Unknown|Apache-2.0
go.opentelemetry.io/otel|Unknown|Apache-2.0
go.opentelemetry.io/proto/otlp|Unknown|Apache-2.0
gopkg.in/cheggaaa/pb.v1|Unknown|BSD-3-Clause
gopkg.in/inf.v0|Unknown|BSD-3-Clause
gopkg.in/ini.v1|Unknown|Apache-2.0
gopkg.in/natefinch/lumberjack.v2|Unknown|MIT
gopkg.in/resty.v1|Unknown|MIT
gopkg.in/square/go-jose.v2/json|Unknown|BSD-3-Clause
gopkg.in/square/go-jose.v2|Unknown|Apache-2.0
gopkg.in/warnings.v0|Unknown|BSD-2-Clause
gopkg.in/yaml.v2|Unknown|Apache-2.0
gopkg.in/yaml.v3|Unknown|MIT
go.uber.org/atomic|Unknown|MIT
go.uber.org/multierr|Unknown|MIT
go.uber.org/zap|Unknown|MIT
k8s.io/apimachinery|Unknown|Apache-2.0
k8s.io/api|Unknown|Apache-2.0
k8s.io/client-go|Unknown|Apache-2.0
k8s.io/klog/v2|Unknown|Apache-2.0
sigs.k8s.io/json|Unknown|Apache-2.0
sigs.k8s.io/yaml|Unknown|MIT
zotregistry.io/zot|https://github.com/rchincha/zot/blob/master/LICENSE|Apache-2.0
github.com/rs/zerolog|https://github.com/rs/zerolog/blob/v1.30.0/LICENSE|MIT
github.com/rubenv/sql-migrate/sqlparse|https://github.com/rubenv/sql-migrate/blob/v1.3.1/sqlparse/LICENSE|MIT
github.com/rubenv/sql-migrate|https://github.com/rubenv/sql-migrate/blob/v1.3.1/LICENSE|MIT
github.com/russross/blackfriday/v2|https://github.com/russross/blackfriday/blob/v2.1.0/LICENSE.txt|BSD-2-Clause
github.com/samber/lo|https://github.com/samber/lo/blob/v1.38.1/LICENSE|MIT
github.com/saracen/walker|https://github.com/saracen/walker/blob/v0.1.3/LICENSE|MIT
github.com/secure-systems-lab/go-securesystemslib/cjson|https://github.com/secure-systems-lab/go-securesystemslib/blob/v0.7.0/LICENSE|MIT
github.com/secure-systems-lab/go-securesystemslib|https://github.com/secure-systems-lab/go-securesystemslib/blob/v0.7.0/LICENSE|MIT
github.com/segmentio/ksuid|https://github.com/segmentio/ksuid/blob/v1.0.4/LICENSE.md|MIT
github.com/sergi/go-diff/diffmatchpatch|https://github.com/sergi/go-diff/blob/v1.3.1/LICENSE|MIT
github.com/shibumi/go-pathspec|https://github.com/shibumi/go-pathspec/blob/v1.3.0/LICENSE|Apache-2.0
github.com/shopspring/decimal|https://github.com/shopspring/decimal/blob/v1.3.1/LICENSE|MIT
github.com/sirupsen/logrus|https://github.com/sirupsen/logrus/blob/v1.9.3/LICENSE|MIT
github.com/skeema/knownhosts|https://github.com/skeema/knownhosts/blob/v1.1.1/LICENSE|Apache-2.0
github.com/smarty/assertions/internal/go-diff/diffmatchpatch|https://github.com/smarty/assertions/blob/v1.15.0/internal/go-diff/LICENSE|MIT
github.com/smarty/assertions/internal/go-render/render|https://github.com/smarty/assertions/blob/v1.15.0/internal/go-render/LICENSE|BSD-3-Clause
github.com/smarty/assertions/internal/oglematchers|https://github.com/smarty/assertions/blob/v1.15.0/internal/oglematchers/LICENSE|Apache-2.0
github.com/smarty/assertions|https://github.com/smarty/assertions/blob/v1.15.0/LICENSE.md|MIT
github.com/smartystreets/goconvey|https://github.com/smartystreets/goconvey/blob/v1.8.1/LICENSE.md|MIT
github.com/spf13/afero|https://github.com/spf13/afero/blob/v1.9.5/LICENSE.txt|Apache-2.0
github.com/spf13/cast|https://github.com/spf13/cast/blob/v1.5.1/LICENSE|MIT
github.com/spf13/cobra|https://github.com/spf13/cobra/blob/v1.7.0/LICENSE.txt|Apache-2.0
github.com/spf13/jwalterweatherman|https://github.com/spf13/jwalterweatherman/blob/v1.1.0/LICENSE|MIT
github.com/spf13/pflag|https://github.com/spf13/pflag/blob/v1.0.5/LICENSE|BSD-3-Clause
github.com/spf13/viper|https://github.com/spf13/viper/blob/v1.16.0/LICENSE|MIT
github.com/spiffe/go-spiffe/v2|https://github.com/spiffe/go-spiffe/blob/v2.1.6/v2/LICENSE|Apache-2.0
github.com/stefanberger/go-pkcs11uri|https://github.com/stefanberger/go-pkcs11uri/blob/78d3cae3a980/LICENSE|Apache-2.0
github.com/stretchr/objx|https://github.com/stretchr/objx/blob/v0.5.0/LICENSE|MIT
github.com/stretchr/testify|https://github.com/stretchr/testify/blob/v1.8.4/LICENSE|MIT
github.com/subosito/gotenv|https://github.com/subosito/gotenv/blob/v1.4.2/LICENSE|MIT
github.com/swaggo/files|https://github.com/swaggo/files/blob/28940afbdbfe/LICENSE|MIT
github.com/swaggo/http-swagger|https://github.com/swaggo/http-swagger/blob/v1.3.4/LICENSE|MIT
github.com/swaggo/swag|https://github.com/swaggo/swag/blob/v1.16.2/license|MIT
github.com/tetratelabs/wazero|https://github.com/tetratelabs/wazero/blob/v1.2.1/LICENSE|Apache-2.0
github.com/thales-e-security/pool|https://github.com/thales-e-security/pool/blob/v0.0.2/LICENSE|Apache-2.0
github.com/theupdateframework/go-tuf|https://github.com/theupdateframework/go-tuf/blob/v0.6.1/LICENSE|BSD-3-Clause
github.com/tinylib/msgp|https://github.com/tinylib/msgp/blob/v1.1.8/LICENSE|MIT
github.com/titanous/rocacheck|https://github.com/titanous/rocacheck/blob/afe73141d399/LICENSE|MIT
github.com/transparency-dev/merkle|https://github.com/transparency-dev/merkle/blob/v0.0.2/LICENSE|Apache-2.0
github.com/twitchtv/twirp|https://github.com/twitchtv/twirp/blob/v8.1.2/LICENSE|Apache-2.0
github.com/ulikunitz/xz|https://github.com/ulikunitz/xz/blob/v0.5.11/LICENSE|BSD-3-Clause
github.com/urfave/cli/v2|https://github.com/urfave/cli/blob/v2.25.5/LICENSE|MIT
github.com/urfave/cli|https://github.com/urfave/cli/blob/v1.22.14/LICENSE|MIT
github.com/vbatts/go-mtree/pkg/govis|https://github.com/vbatts/go-mtree/blob/v0.5.2/pkg/govis/COPYING|Apache-2.0
github.com/vbatts/go-mtree|https://github.com/vbatts/go-mtree/blob/v0.5.2/LICENSE|BSD-3-Clause
github.com/vbatts/tar-split/archive/tar|https://github.com/vbatts/tar-split/blob/v0.11.5/LICENSE|BSD-3-Clause
github.com/vbauerster/mpb/v8|https://github.com/vbauerster/mpb/blob/v8.6.1/UNLICENSE|Unlicense
github.com/vektah/gqlparser/v2|https://github.com/vektah/gqlparser/blob/v2.5.9/LICENSE|MIT
github.com/xanzy/go-gitlab|https://github.com/xanzy/go-gitlab/blob/v0.90.0/LICENSE|Apache-2.0
github.com/xanzy/ssh-agent|https://github.com/xanzy/ssh-agent/blob/v0.3.3/LICENSE|Apache-2.0
github.com/xeipuuv/gojsonpointer|https://github.com/xeipuuv/gojsonpointer/blob/02993c407bfb/LICENSE-APACHE-2.0.txt|Apache-2.0
github.com/xeipuuv/gojsonreference|https://github.com/xeipuuv/gojsonreference/blob/bd5ef7bd5415/LICENSE-APACHE-2.0.txt|Apache-2.0
github.com/xeipuuv/gojsonschema|https://github.com/xeipuuv/gojsonschema/blob/v1.2.0/LICENSE-APACHE-2.0.txt|Apache-2.0
github.com/xlab/treeprint|https://github.com/xlab/treeprint/blob/v1.2.0/LICENSE|MIT
github.com/xrash/smetrics|https://github.com/xrash/smetrics/blob/039620a65673/LICENSE|MIT
github.com/yashtewari/glob-intersection|https://github.com/yashtewari/glob-intersection/blob/v0.2.0/LICENSE|Apache-2.0
github.com/zclconf/go-cty-yaml|https://github.com/zclconf/go-cty-yaml/blob/v1.0.3/LICENSE|Apache-2.0
github.com/zclconf/go-cty/cty|https://github.com/zclconf/go-cty/blob/v1.13.0/LICENSE|MIT
github.com/zeebo/errs|https://github.com/zeebo/errs/blob/v1.3.0/LICENSE|MIT
github.com/zitadel/oidc|https://github.com/zitadel/oidc/blob/v1.13.4/LICENSE|Apache-2.0
go.etcd.io/bbolt|https://github.com/etcd-io/bbolt/blob/v1.3.7/LICENSE|MIT
go.mongodb.org/mongo-driver|https://github.com/mongodb/mongo-go-driver/blob/v1.11.3/LICENSE|Apache-2.0
go.mozilla.org/pkcs7|https://github.com/mozilla-services/pkcs7/blob/33d05740a352/LICENSE|MIT
go.opencensus.io|https://github.com/census-instrumentation/opencensus-go/blob/v0.24.0/LICENSE|Apache-2.0
go.opentelemetry.io/otel/metric|https://github.com/open-telemetry/opentelemetry-go/blob/metric/v1.16.0/metric/LICENSE|Apache-2.0
go.opentelemetry.io/otel/sdk|https://github.com/open-telemetry/opentelemetry-go/blob/sdk/v1.16.0/sdk/LICENSE|Apache-2.0
go.opentelemetry.io/otel/trace|https://github.com/open-telemetry/opentelemetry-go/blob/trace/v1.16.0/trace/LICENSE|Apache-2.0
go.opentelemetry.io/otel|https://github.com/open-telemetry/opentelemetry-go/blob/v1.16.0/LICENSE|Apache-2.0
go.uber.org/atomic|https://github.com/uber-go/atomic/blob/v1.11.0/LICENSE.txt|MIT
go.uber.org/multierr|https://github.com/uber-go/multierr/blob/v1.11.0/LICENSE.txt|MIT
go.uber.org/zap|https://github.com/uber-go/zap/blob/v1.25.0/LICENSE.txt|MIT
go4.org/intern|https://github.com/go4org/intern/blob/ae77deb06f29/LICENSE|BSD-3-Clause
go4.org/unsafe/assume-no-moving-gc|https://github.com/go4org/unsafe-assume-no-moving-gc/blob/928513b29760/LICENSE|BSD-3-Clause
golang.org/x/crypto/md4|https://cs.opensource.google/go/x/crypto/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/crypto/pbkdf2|https://cs.opensource.google/go/x/crypto/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/crypto/pkcs12|https://cs.opensource.google/go/x/crypto/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/crypto/ripemd160|https://cs.opensource.google/go/x/crypto/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/crypto/sha3|https://cs.opensource.google/go/x/crypto/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/crypto|https://cs.opensource.google/go/x/crypto/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/exp/constraints|https://cs.opensource.google/go/x/exp/+/d852ddb8:LICENSE|BSD-3-Clause
golang.org/x/mod/semver|https://cs.opensource.google/go/x/mod/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/mod|https://cs.opensource.google/go/x/mod/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/net/context|https://cs.opensource.google/go/x/net/+/v0.15.0:LICENSE|BSD-3-Clause
golang.org/x/net/html|https://cs.opensource.google/go/x/net/+/v0.15.0:LICENSE|BSD-3-Clause
golang.org/x/net/publicsuffix|https://cs.opensource.google/go/x/net/+/v0.15.0:LICENSE|BSD-3-Clause
golang.org/x/net/webdav|https://cs.opensource.google/go/x/net/+/v0.15.0:LICENSE|BSD-3-Clause
golang.org/x/net|https://cs.opensource.google/go/x/net/+/v0.15.0:LICENSE|BSD-3-Clause
golang.org/x/oauth2|https://cs.opensource.google/go/x/oauth2/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/sync/errgroup|https://cs.opensource.google/go/x/sync/+/v0.3.0:LICENSE|BSD-3-Clause
golang.org/x/sync/semaphore|https://cs.opensource.google/go/x/sync/+/v0.3.0:LICENSE|BSD-3-Clause
golang.org/x/sync|https://cs.opensource.google/go/x/sync/+/v0.3.0:LICENSE|BSD-3-Clause
golang.org/x/sys/cpu|https://cs.opensource.google/go/x/sys/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/sys/execabs|https://cs.opensource.google/go/x/sys/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/sys/unix|https://cs.opensource.google/go/x/sys/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/sys|https://cs.opensource.google/go/x/sys/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/term|https://cs.opensource.google/go/x/term/+/v0.12.0:LICENSE|BSD-3-Clause
golang.org/x/text|https://cs.opensource.google/go/x/text/+/v0.13.0:LICENSE|BSD-3-Clause
golang.org/x/time/rate|https://cs.opensource.google/go/x/time/+/v0.3.0:LICENSE|BSD-3-Clause
golang.org/x/tools|https://cs.opensource.google/go/x/tools/+/74c255bc:LICENSE|BSD-3-Clause
golang.org/x/xerrors|https://cs.opensource.google/go/x/xerrors/+/04be3eba:LICENSE|BSD-3-Clause
google.golang.org/api/googleapi|https://github.com/googleapis/google-api-go-client/blob/v0.138.0/LICENSE|BSD-3-Clause
google.golang.org/api/internal/third_party/uritemplates|https://github.com/googleapis/google-api-go-client/blob/v0.138.0/internal/third_party/uritemplates/LICENSE|BSD-3-Clause
google.golang.org/api|https://github.com/googleapis/google-api-go-client/blob/v0.138.0/LICENSE|BSD-3-Clause
google.golang.org/appengine|https://github.com/golang/appengine/blob/v1.6.7/LICENSE|Apache-2.0
google.golang.org/genproto/googleapis/api|https://github.com/googleapis/go-genproto/blob/f966b187b2e5/googleapis/api/LICENSE|Apache-2.0
google.golang.org/genproto/googleapis/rpc/status|https://github.com/googleapis/go-genproto/blob/1744710a1577/googleapis/rpc/LICENSE|Apache-2.0
google.golang.org/genproto/googleapis/rpc|https://github.com/googleapis/go-genproto/blob/1744710a1577/googleapis/rpc/LICENSE|Apache-2.0
google.golang.org/genproto/googleapis/type/expr|https://github.com/googleapis/go-genproto/blob/f966b187b2e5/LICENSE|Apache-2.0
google.golang.org/genproto/googleapis/type|https://github.com/googleapis/go-genproto/blob/f966b187b2e5/LICENSE|Apache-2.0
google.golang.org/genproto/protobuf/field_mask|https://github.com/googleapis/go-genproto/blob/f966b187b2e5/LICENSE|Apache-2.0
google.golang.org/grpc|https://github.com/grpc/grpc-go/blob/v1.57.0/LICENSE|Apache-2.0
google.golang.org/protobuf|https://github.com/protocolbuffers/protobuf-go/blob/v1.31.0/LICENSE|BSD-3-Clause
gopkg.in/cheggaaa/pb.v1|https://github.com/cheggaaa/pb/blob/v1.0.28/LICENSE|BSD-3-Clause
gopkg.in/go-jose/go-jose.v2/json|https://github.com/go-jose/go-jose/blob/v2.6.1/json/LICENSE|BSD-3-Clause
gopkg.in/go-jose/go-jose.v2|https://github.com/go-jose/go-jose/blob/v2.6.1/LICENSE|Apache-2.0
gopkg.in/inf.v0|https://github.com/go-inf/inf/blob/v0.9.1/LICENSE|BSD-3-Clause
gopkg.in/ini.v1|https://github.com/go-ini/ini/blob/v1.67.0/LICENSE|Apache-2.0
gopkg.in/resty.v1|https://github.com/go-resty/resty/blob/v1.12.0/LICENSE|MIT
gopkg.in/square/go-jose.v2/json|https://github.com/square/go-jose/blob/v2.6.0/json/LICENSE|BSD-3-Clause
gopkg.in/square/go-jose.v2|https://github.com/square/go-jose/blob/v2.6.0/LICENSE|Apache-2.0
gopkg.in/warnings.v0|https://github.com/go-warnings/warnings/blob/v0.1.2/LICENSE|BSD-2-Clause
gopkg.in/yaml.v2|https://github.com/go-yaml/yaml/blob/v2.4.0/LICENSE|Apache-2.0
gopkg.in/yaml.v3|https://github.com/go-yaml/yaml/blob/v3.0.1/LICENSE|MIT
inet.af/netaddr|https://github.com/inetaf/netaddr/blob/502d2d690317/LICENSE|BSD-3-Clause
k8s.io/apimachinery|https://github.com/kubernetes/apimachinery/blob/v0.28.1/LICENSE|Apache-2.0
k8s.io/apiserver|https://github.com/kubernetes/apiserver/blob/v0.27.3/LICENSE|Apache-2.0
k8s.io/api|https://github.com/kubernetes/api/blob/v0.28.1/LICENSE|Apache-2.0
k8s.io/cli-runtime|https://github.com/kubernetes/cli-runtime/blob/v0.28.1/LICENSE|Apache-2.0
k8s.io/client-go|https://github.com/kubernetes/client-go/blob/v0.28.1/LICENSE|Apache-2.0
k8s.io/component-base|https://github.com/kubernetes/component-base/blob/v0.28.1/LICENSE|Apache-2.0
k8s.io/klog/v2|https://github.com/kubernetes/klog/blob/v2.100.1/LICENSE|Apache-2.0
k8s.io/kubectl|https://github.com/kubernetes/kubectl/blob/v0.28.1/LICENSE|Apache-2.0
lukechampine.com/uint128|https://github.com/lukechampine/uint128/blob/v1.2.0/LICENSE|MIT
modernc.org/cc/v3|Unknown|Unknown
modernc.org/ccgo/v3/lib|Unknown|Unknown
modernc.org/ccgo/v3|Unknown|Unknown
modernc.org/libc/honnef.co/go/netdb|https://gitlab.com/cznic/libc/blob/v1.24.1/honnef.co/go/netdb/LICENSE|MIT
modernc.org/libc|https://gitlab.com/cznic/libc/blob/v1.24.1/LICENSE-GO|BSD-3-Clause
modernc.org/mathutil|Unknown|Unknown
modernc.org/memory|https://gitlab.com/cznic/memory/blob/v1.6.0/LICENSE-GO|BSD-3-Clause
modernc.org/opt|Unknown|Unknown
modernc.org/sqlite|https://gitlab.com/cznic/sqlite/blob/v1.25.0/LICENSE|BSD-3-Clause
modernc.org/strutil|Unknown|Unknown
modernc.org/token|https://gitlab.com/cznic/token/blob/v1.0.1/LICENSE|BSD-3-Clause
oras.land/oras-go/v2|https://github.com/oras-project/oras-go/blob/v2.3.0/LICENSE|Apache-2.0
sigs.k8s.io/json|https://github.com/kubernetes-sigs/json/blob/bc3834ca7abd/LICENSE|Apache-2.0
sigs.k8s.io/kustomize/api|https://github.com/kubernetes-sigs/kustomize/blob/6ce0bf390ce3/api/LICENSE|Apache-2.0
sigs.k8s.io/kustomize/kyaml|https://github.com/kubernetes-sigs/kustomize/blob/6ce0bf390ce3/kyaml/LICENSE|Apache-2.0
sigs.k8s.io/yaml|https://github.com/kubernetes-sigs/yaml/blob/v1.3.0/LICENSE|MIT
zotregistry.io/zot|https://github.com/project-zot/zot/blob/HEAD/LICENSE|Apache-2.0

View file

@ -15,7 +15,7 @@ http:\n\
storage:\n\
rootDirectory: /var/lib/registry\n\
gc: false\n\
dedupe: false' > config.yml && cat config.yml
dedupe: false' > config.yaml && cat config.yaml
# ---
# Stage 2: Final image with nothing but certs, binary, and default config file
@ -23,8 +23,8 @@ storage:\n\
FROM gcr.io/distroless/base AS final
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /go/src/github.com/project-zot/zot/bin/zot-linux-amd64 /usr/bin/zot
COPY --from=builder /go/src/github.com/project-zot/zot/config.yml /etc/zot/config.yml
COPY --from=builder /go/src/github.com/project-zot/zot/config.yaml /etc/zot/config.yaml
ENTRYPOINT ["/usr/bin/zot"]
EXPOSE 5000
VOLUME ["/var/lib/registry"]
CMD ["serve", "/etc/zot/config.yml"]
CMD ["serve", "/etc/zot/config.yaml"]