This repository contains a GitHub Actions workflow designed to provide insights into your project's development by tracking changes in your codebase. On every push to your repository, this workflow analyzes your commits to count the number of lines added and removed.
The analysis focuses on popular programming languages across web development, backend systems, mobile development, and scripting, and excludes comments and other trivial changes to provide an accurate measure of your project's evolution.
- π€ Automated Analysis: The workflow runs automatically on every push, so you always have up-to-date information.
- π‘ Meaningful Metrics: It intelligently ignores comments and trivial changes, focusing only on the code that matters.
- π Detailed Reporting: Provides a clear summary of added and removed lines for supported file types.
- π Project Size Tracking: In addition to line changes, it also reports the overall size of the project.
- ** seamlessly Integration**: All reports are available directly in the GitHub Actions job summary, so you don't have to leave GitHub to see the results.
The workflow currently analyzes the following file types:
.js(JavaScript).ts(TypeScript).tsx(TypeScript JSX).json(JSON).html(HTML).css(CSS)
.py(Python).java(Java).cs(C#).cpp,.cc,.cxx(C++).c(C).h,.hpp(C/C++ Headers).go(Go).rs(Rust).php(PHP)
.rb(Ruby).swift(Swift).kt,.kts(Kotlin).scala(Scala)
.sh(Shell).bash(Bash)
- Install the Workflow: To use this in your own repository, copy the workflow file from
.github/workflows/into your project's.github/workflows/directory. - Push a Change: Make a commit and push it to your repository.
- View the Report: Navigate to the Actions tab in your repository. Click on the latest workflow run, and you will find the lines of code report in the job summary.
Contributions are welcome! If you have ideas for improvements or have found a bug, please feel free to open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
This project is intended as a Proof of Concept (POC) to demonstrate an approach for counting lines of code. While it is functional, it is not a complete solution and may not handle all edge cases. It has not been fully tested and should be considered a starting point for building a more robust line-counting tool.