gitlab-org / GitLab_Enterprise_Edition
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
haml
snap
rake
po
eml
builder
txt
patch
ru
meta
pub
eslintignore
gitattributes
ruby
asc
prettierignore
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main1279713 LOC (86%) 19,875 files
test20038 LOC (1%) 351 files
generated0 LOC (0%) 0 files
build and deployment1200 LOC (<1%) 19 files
other178729 LOC (12%) 1,845 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
haml
rake
eml
builder
asc
ru
ruby
meta
pub
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 19875 files match defined criteria (1,279,713 LOC, 100.0% vs. main code):
    • 13,487 *.rb files (847,846 LOC)
    • 3,279 *.js files (253,309 LOC)
    • 918 *.vue files (88,562 LOC)
    • 200 *.scss files (35,901 LOC)
    • 1,673 *.haml files (33,527 LOC)
    • 51 *.graphql files (6,757 LOC)
    • 8 *.xml files (5,856 LOC)
    • 81 *.rake files (3,234 LOC)
    • 47 *.eml files (3,049 LOC)
    • 86 *.erb files (954 LOC)
    • 21 *.html files (278 LOC)
    • 1 *.yaml files (172 LOC)
    • 14 *.builder files (143 LOC)
    • 1 *.asc files (45 LOC)
    • 3 *.ru files (32 LOC)
    • 1 *.py files (32 LOC)
    • 1 *.ruby files (13 LOC)
    • 2 *.meta files (2 LOC)
    • 1 *.pub files (1 LOC)
  • " *.rb" is biggest, containing 66.25% of LOC.
  • " *.pub" is smallest, containing 0% of LOC.


*.rb847846 LOC (66%) 13,487 files
*.js253309 LOC (19%) 3,279 files
*.vue88562 LOC (6%) 918 files
*.scss35901 LOC (2%) 200 files
*.haml33527 LOC (2%) 1,673 files
*.graphql6757 LOC (<1%) 51 files
*.xml5856 LOC (<1%) 8 files
*.rake3234 LOC (<1%) 81 files
*.eml3049 LOC (<1%) 47 files
*.erb954 LOC (<1%) 86 files
*.html278 LOC (<1%) 21 files
*.yaml172 LOC (<1%) 1 file
*.builder143 LOC (<1%) 14 files
*.asc45 LOC (<1%) 1 file
*.ru32 LOC (<1%) 3 files
*.py32 LOC (<1%) 1 file
*.ruby13 LOC (<1%) 1 file
*.meta2 LOC (<1%) 2 files
*.pub1 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
snap
rake
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/jest[.][a-zA-Z0-9\.]+".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/testing[.].*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*_mock[.][a-zA-Z0-9_\-]+".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*[.]snap".
    • files with paths like ".*/__mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Ss]pecs/.*".
  • 351 files match defined criteria (20,038 LOC, 1.6% vs. main code):
    • 215 *.rb files (10,901 LOC)
    • 83 *.snap files (5,288 LOC)
    • 45 *.js files (3,342 LOC)
    • 5 *.vue files (457 LOC)
    • 3 *.rake files (50 LOC)
  • " *.rb" is biggest, containing 54.4% of LOC.
  • " *.rake" is smallest, containing 0.25% of LOC.


*.rb10901 LOC (54%) 215 files
*.snap5288 LOC (26%) 83 files
*.js3342 LOC (16%) 45 files
*.vue457 LOC (2%) 5 files
*.rake50 LOC (<1%) 3 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*([.]|/)webpack([.]|/).*".
    • files with paths like ".*/[.]gitattributes".
  • 19 files match defined criteria (1,200 LOC, 0.1% vs. main code):
    • 13 *.sh files (693 LOC)
    • 4 *.js files (462 LOC)
    • 2 *.rb files (45 LOC)
  • " *.sh" is biggest, containing 57.75% of LOC.
  • " *.rb" is smallest, containing 3.75% of LOC.


*.sh693 LOC (57%) 13 files
*.js462 LOC (38%) 4 files
*.rb45 LOC (3%) 2 files
Other Code
po
txt
patch
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]svg".
    • files with paths like ".*[.]po".
    • files with paths like ".*[.]patch".
    • files with paths like ".*/vendor/.*".
    • files with paths like ".*/asciidoc/.*".
    • files with paths like ".*/[.]eslintignore".
    • files with paths like ".*/[.]dockerignore".
  • 1845 files match defined criteria (178,729 LOC, 14.0% vs. main code):
    • 1,298 *.md files (137,480 LOC)
    • 385 *.json files (38,318 LOC)
    • 9 *.po files (1,776 LOC)
    • 135 *.svg files (615 LOC)
    • 10 *.txt files (233 LOC)
    • 3 *.patch files (200 LOC)
    • 4 *.rb files (104 LOC)
    • 1 *.clj files (3 LOC)
  • " *.md" is biggest, containing 76.92% of LOC.
  • " *.clj" is smallest, containing 0% of LOC.


*.md137480 LOC (76%) 1,298 files
*.json38318 LOC (21%) 385 files
*.po1776 LOC (<1%) 9 files
*.svg615 LOC (<1%) 135 files
*.txt233 LOC (<1%) 10 files
*.patch200 LOC (<1%) 3 files
*.rb104 LOC (<1%) 4 files
*.clj3 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-16 13:50