{"repo":"andrehora/gitevo","free":true,"listed":false,"github":"https://github.com/andrehora/gitevo","clone":"git clone https://github.com/andrehora/gitevo.git","description":"Code evolution analysis for Git repositories","language":"Python","stars":18,"topics":["git","python","tree-sitter","software-evolution","msr","code-analysis","metrics"],"license":"MIT","category":"analytics","readme_excerpt":"GitEvo Code evolution analysis for Git repositories. It currently supports Python, JavaScript, TypeScript, and Java. GitEvo can be used to define (custom) code evolution metrics at the level of the concrete syntax tree (CST), thanks to Tree-sitter. Examples of reports: Flask, Pandas, Node, Express, TypeScript, Vue-core, Spring Boot, Mockito, and FastAPI. See more examples: gitevo-examples. Install Usage via command-line Analyzing the evolution of a Git repository: git repo accepts (1) a Git URL, (2) a local repository, or (3) a directory containing multiple Git repositories: Command-line arguments Defining custom metrics GitEvo can be used to define custom code evolution metrics at the level of the concrete syntax tree (CST), thanks to Tree-sitter. GitEvo provides three key classes: GitEvo , ParsedCommit , and ParsedFile . - GitEvo is the main class, the entry point to use the tool. It receives as input the repository, file extension, date unit for analysis, and start/end year for analysis. - Metrics are defined in functions decorated with @evo.metric() . - ParsedCommit represents a parsed commit and contains (1) a list of ParsedFile and (2) a list of tree sitter.Node . - ParsedFile represents a parsed file in a commit, including properties as name, path, and tree-sitter nodes. Examples Basic metrics Metrics based on node types Metrics based on node content More examples - All: https://github.com/andrehora/gitevo/tree/main/examples - Python: https://github.com/andrehora/gitev","default_branch":null,"files":null,"tree":[],"storefront":"/r/andrehora","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/andrehora/gitevo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}