microsoft / cla-assistant
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 336 units with 5,485 lines of code in units (58.3% of code).
    • 0 very complex units (0 lines of code)
    • 2 complex units (216 lines of code)
    • 12 medium complex units (455 lines of code)
    • 36 simple units (937 lines of code)
    • 286 very simple units (3,877 lines of code)
0% | 3% | 8% | 17% | 70%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
js0% | 3% | 8% | 17% | 70%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/server/services0% | 15% | 17% | 13% | 52%
src/server/api0% | 0% | 13% | 46% | 39%
src/server/webhooks0% | 0% | 62% | 17% | 19%
src/client0% | 0% | 15% | 0% | 84%
src/client/controller0% | 0% | 0% | 22% | 77%
src/server/middleware0% | 0% | 0% | 58% | 41%
src/server/passports0% | 0% | 0% | 52% | 47%
src/server/controller0% | 0% | 0% | 68% | 31%
src/client/modals0% | 0% | 0% | 13% | 86%
src/client/services0% | 0% | 0% | 26% | 73%
src/client/assets0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
src/server/graphQueries0% | 0% | 0% | 0% | 100%
src/server0% | 0% | 0% | 0% | 100%
src/server/documents0% | 0% | 0% | 0% | 100%
src0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
async getPRCommitters()
in src/server/services/repo.js
99 31 1
async checkPullRequestSignatures()
in src/server/services/cla.js
117 29 2
async function updateStatusAndComment()
in src/server/webhooks/pull_request.js
48 20 2
async countCLA()
in src/server/api/cla.js
34 14 1
async _getLastSignatureOnMultiDates()
in src/server/services/cla.js
33 14 8
function exec()
in src/client/api.js
30 13 4
async function validatePR()
in src/server/api/cla.js
27 13 2
async _isSignificantPullRequest()
in src/server/services/cla.js
25 13 5
async getAll()
in src/server/services/cla.js
53 13 1
async badgeComment()
in src/server/services/pullRequest.js
45 12 5
31 11 2
async update()
in src/server/services/status.js
22 11 1
module.exports = function()
in src/server/services/url.js
64 11 0
function storeRequest()
in src/server/webhooks/pull_request.js
43 11 4
getCustomFields()
in src/client/controller/settings.js
35 10 4
create: async()
in src/server/api/repo.js
35 10 1
function authenticateForAdminOnlyApi()
in src/server/middleware/authenticated.js
26 10 3
async function checkToken()
in src/server/passports/github.js
36 10 2
async _getLinkedItem()
in src/server/services/cla.js
30 10 5
async _getHook()
in src/server/services/webhook.js
28 10 3