{"id":14986083,"url":"https://github.com/djdefi/gitavscan","last_synced_at":"2025-04-11T20:31:40.444Z","repository":{"id":39875842,"uuid":"241807134","full_name":"djdefi/gitavscan","owner":"djdefi","description":"Git Anti-Virus Scan Action - Detect trojans, viruses, malware \u0026 other malicious threats.","archived":false,"fork":false,"pushed_at":"2024-05-29T00:37:41.000Z","size":162,"stargazers_count":37,"open_issues_count":2,"forks_count":5,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-05-29T05:10:29.476Z","etag":null,"topics":["action","anti-virus","antivirus","ci","clamav","continuous-antivirus","continuous-integration","continuous-scanning","continuous-security","devsecops","git","hacktoberfest","malware-detection","repository-antivirus","secops","security"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djdefi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-20T06:06:43.000Z","updated_at":"2024-07-31T12:42:22.283Z","dependencies_parsed_at":"2024-01-08T05:53:30.609Z","dependency_job_id":"620829c7-6491-416a-b715-51edc1e1c74f","html_url":"https://github.com/djdefi/gitavscan","commit_stats":{"total_commits":86,"total_committers":6,"mean_commits":"14.333333333333334","dds":0.686046511627907,"last_synced_commit":"e877c6b83347ae951124bfb16e147582d55fd27d"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdefi%2Fgitavscan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdefi%2Fgitavscan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdefi%2Fgitavscan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdefi%2Fgitavscan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djdefi","download_url":"https://codeload.github.com/djdefi/gitavscan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248476306,"owners_count":21110254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["action","anti-virus","antivirus","ci","clamav","continuous-antivirus","continuous-integration","continuous-scanning","continuous-security","devsecops","git","hacktoberfest","malware-detection","repository-antivirus","secops","security"],"created_at":"2024-09-24T14:12:17.983Z","updated_at":"2025-04-11T20:31:35.420Z","avatar_url":"https://github.com/djdefi.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Git AV Scan Action\n\nAction and Dockerfile to scan Git HEAD or commit history using [ClamAV](https://www.clamav.net/). ClamAV® is an open-source antivirus engine for detecting trojans, viruses, malware \u0026 other malicious threats.\n\n## Disclaimer\n\nThis is a proof of concept, and does not provide any guarantee that carefully hidden objects will be scanned. Strong endpoint security, access, and code review policies and practices are the most effective way to ensure that malicious files or code is not introduced into a repository.\n\nThis project is not affiliated with the official ClamAV project.\n\n## Example usage\n\n```\nuses: djdefi/gitavscan@main\nwith:\n  full: '--full'\n```\n\n## Example workflow\n\nDeep history scan. Scans each commit in the repository history. Slow but thorough:\n\n```yaml\non: [push]\n\njobs:\n  gitavscan:\n    runs-on: ubuntu-latest\n    name: History AV Scan\n    steps:\n    - uses: actions/checkout@v3\n      with:\n        fetch-depth: '0'\n    - name: Git AV Scan\n      uses: djdefi/gitavscan@main\n      with:\n        full: '--full'\n```  \n\nScan current HEAD only. Only the most recent commit pushed will be scanned. Best used with an [enforced linear history](https://help.github.com/en/github/administering-a-repository/requiring-a-linear-commit-history), or by disabling PR merges in a repository. Fast but misses deeper history:\n\n```yaml\non: [push]\n\njobs:\n  gitavscan:\n    runs-on: ubuntu-latest\n    name: AV scan\n    steps:\n    - uses: actions/checkout@v3\n    - name: Git AV Scan\n      uses: djdefi/gitavscan@main\n``` \n\n### Passing options to `clamscan`\n\nSetting additional [`clamscan` command line options](https://linux.die.net/man/1/clamscan) is supported. This can be used to limit or exclude directories from the scope of the scan.\n\n```yaml\non: [push]\njobs:\n  gitavscan:\n    runs-on: ubuntu-latest\n    name: History AV Scan\n    steps:\n    - uses: actions/checkout@main\n      with:\n        fetch-depth: '0'\n    - name: Git AV Scan\n      uses: djdefi/gitavscan@main\n      with:\n        options: '--max-filesize=1M'\n```        \n\n## Running locally with Docker\n\nBuild:\n\n```shell\ndocker build -t gitavscan .\n```\n\nRun full scan:\n\n```shell\ndocker run --rm -it -v /path/to/repo:/scandir gitavscan --full\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjdefi%2Fgitavscan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjdefi%2Fgitavscan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjdefi%2Fgitavscan/lists"}