first commit
Some checks failed
Validate, publish and deploy / validate (push) Successful in 2m2s
Validate, publish and deploy / publish-and-deploy (push) Failing after 8s

This commit is contained in:
Cauê Faleiros
2026-09-15 16:42:34 -03:00
commit 98c951d374
170 changed files with 95988 additions and 0 deletions

24
local/dependency_audit.py Normal file
View File

@@ -0,0 +1,24 @@
"""Audit exact installed API packages, not a host-dependent re-resolution.
Install pip-audit in an isolated environment; pass its executable as argv[1].
Only package names/versions are sent to the public vulnerability database.
"""
import json
from pathlib import Path
import subprocess
import sys
if __name__=='__main__':
packages=json.loads(subprocess.check_output(['docker','compose','exec','-T','api','pip','list','--format=json'],text=True))
requirements='\n'.join(p['name']+'=='+p['version'] for p in packages)+'\n'
destination=Path('output/security');destination.mkdir(parents=True,exist_ok=True)
(destination/'runtime-requirements.txt').write_text(requirements)
result=subprocess.run([sys.argv[1] if len(sys.argv)>1 else 'pip-audit','--no-deps','--disable-pip',
'--progress-spinner','off','-r',str(destination/'runtime-requirements.txt'),
'-f','json','-o',str(destination/'python-audit.json')])
if (destination/'python-audit.json').exists():
data=json.loads((destination/'python-audit.json').read_text())
for package in data['dependencies']:
for vulnerability in package.get('vulns',[]):
print(package['name'],package['version'],vulnerability['id'],'fix:',','.join(vulnerability['fix_versions']))
sys.exit(result.returncode)