import json from subprocess import check_output def filter_schema(obj, schema): if schema is True: return obj return {key: filter_schema(obj[key], value) for key, value in schema.items()} entry_schema = {"name": True, "metrics": {"halstead": {"bugs": True, "difficulty": True}}} commits = check_output(['git', 'log', '--pretty=%H'], text=True).splitlines() entries = [] for (i, commit) in enumerate(commits): print('running', commit) check_output(['git', 'checkout', commit], text=True) lines = check_output( ["rust-code-analysis-cli", "-m", "-p", "src", "-O", "json"], text=True ).splitlines() print(len(lines)) for line in lines: entry = json.loads(line) entries.append((i, filter_schema(entry, entry_schema))) with open('/code/metrics.json', 'w') as file: json.dump(entries, file)