REPOMATIC-SCAN-VIRUSTOTAL(1) REPOMATIC-SCAN-VIRUSTOTAL(1)

repomatic scan-virustotal - Upload release binaries to VirusTotal

repomatic scan-virustotal [OPTIONS]

Upload release binaries to VirusTotal.

Scans all .bin and .exe files in the given directory and uploads them to VirusTotal, seeding antivirus vendor databases with the signatures of the freshly built binaries.

With --download, first fetches the tag's versioned binaries from its GitHub release into the directory, waiting for a freshly published release to list its assets.

With --poll, waits for the analyses to complete and reports each binary's flagged / total verdict counts. With --records, the polled snapshots are merged into a CSV history, which sync-binaries renders into the binaries catalog page.

Release tag the binaries belong to (e.g., v1.2.3).
[required]
VirusTotal API key.
[required]
Directory containing binary files to upload.
[required]
Download the tag's versioned binaries from its GitHub release into --binaries-dir first, waiting for the release to list its assets.
Repository in owner/repo format that --download reads the release from.
Maximum VirusTotal API requests per minute.
Poll for detection statistics after uploading.
Maximum seconds to wait for analysis completion when polling.
CSV scan history to record detection snapshots in (requires --poll).
Restore --records from this remote branch before scanning, so snapshots still pending in an open pull request are appended to instead of dropped. Name the branch the job publishes to. Ignored when the branch does not exist, which is every run that follows a merge.
Show this message and exit.

Release tag the binaries belong to (e.g., v1.2.3).
VirusTotal API key.
VirusTotal API key.
Directory containing binary files to upload.
Download the tag's versioned binaries from its GitHub release into --binaries-dir first, waiting for the release to list its assets.
Repository in owner/repo format that --download reads the release from.
Repository in owner/repo format that --download reads the release from.
Maximum VirusTotal API requests per minute.
Poll for detection statistics after uploading.
Maximum seconds to wait for analysis completion when polling.
CSV scan history to record detection snapshots in (requires --poll).
Restore --records from this remote branch before scanning, so snapshots still pending in an open pull request are appended to instead of dropped. Name the branch the job publishes to. Ignored when the branch does not exist, which is every run that follows a merge.
Show this message and exit.

0
Success.
1
A runtime error, an aborted prompt (Ctrl-D), or a declined confirmation.
2
A usage error: unknown option, invalid value, missing operand, or an unparsable configuration file.
130
Interrupted with Ctrl-C: the process ends by SIGINT, reported as 130.

Scan the binaries attached to a tag

repomatic scan\-virustotal \-\-tag v1.2.3 \-\-binaries\-dir ./binaries

Wait for verdicts and record them

repomatic scan\-virustotal \-\-tag v1.2.3 \-\-binaries\-dir ./binaries \-\-poll \-\-records docs/assets/virustotal\-scans.csv

Download the release's binaries first

repomatic scan\-virustotal \-\-tag v1.2.3 \-\-download \-\-repo owner/repo \-\-binaries\-dir ./binaries

Kevin Deldycke

2026-10-13 7.18.1.dev0