Source code analysis is a complicated process involving support for different language versions and features.
The process consists of
integrating with GitHub, Bitbucket, GitLab and Gerrit (on-prem and cloud APIs) are supported,
source code syntax handling,
structural analysis,
metadata and package file analysis,
cross referencing and dependency analysis,
Git history analysis,
metrics calculation,
aggregation,
duplicate (alias copy paste) detection,
co-change detection,
change analysis,
model level comparison and
reporting.
Certain phases in the process require special language specific tools and plugins. The programming languages do evolve at different speeds. This causes challenges for the language level handlers.
Known issues:
Duplicate detection does not support TypeScript language.
Repositories with special characters in repository name do cause trouble in certain cases.