Ericsson / CodeCompass

CodeCompass is a software comprehension tool for large scale software written in C/C++ and Java
https://codecompass.net
GNU General Public License v3.0
520 stars 102 forks source link

Support for YAML and Helm chart static analysis #582

Open intjftw opened 2 years ago

intjftw commented 2 years ago

This is a new language plugin to extend CC with. Ericsson products have been transforming their projects from monolithic to service oriented software architecture so they are now built up of microservices. Since projects are very large and sprawling, there is a wide demand in Ericsson for a static analysis tool that will help understanding the network of microservices within a project.

This plugin consists of

I'll keep expanding this plugin with the huge amount of feature requests that I received from Ericsson, but I think that the plugin can be officially added to CC at this point with the current feature set.

The basis of this work was done by @rizwankadhar as his BSc thesis. Thanks Rizwan for your work!

whisperity commented 1 year ago

(Just a side note: if we are embedding business logic into this module that is specific to specific YAML schemae (I see Helm mentioned in the original post) then maybe calling the plugin "YAML Parser" is a bit too generic.)

intjftw commented 1 year ago

(Just a side note: if we are embedding business logic into this module that is specific to specific YAML schemae (I see Helm mentioned in the original post) then maybe calling the plugin "YAML Parser" is a bit too generic.)

The plugin became more and more specific to Helm and Kubernetes from the initial point of plain YAML parsing. I plan to rename it to "Microservice plugin" or something like that.

intjftw commented 1 year ago

I added the most important modifications to the PR. It is now in a state where parsing is correct and thorough enough to provide useful functionality. I removed the WIP flag, as the PR is ready for review.

mcserep commented 1 year ago

Resolved merge conflicts in 71047a8a5ef555785672fffb280b460a308fe8d1.