{
  "title" : "Duplication",
  "timestamp" : "2025-04-14 11:54:17",
  "duplicates" : [ {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 201,
      "endLine" : 227,
      "cleanedStartLine" : 122,
      "cleanedEndLine" : 140
    }, {
      "file" : {
        "relativePath" : "providers/provider_default.go",
        "extension" : "go",
        "linesOfCode" : 102,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 32,
      "endLine" : 58,
      "cleanedStartLine" : 13,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 16,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 108,
      "endLine" : 128,
      "cleanedStartLine" : 54,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 288,
      "endLine" : 308,
      "cleanedStartLine" : 171,
      "cleanedEndLine" : 186
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/github.go",
        "extension" : "go",
        "linesOfCode" : 254,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 84,
      "endLine" : 101,
      "cleanedStartLine" : 44,
      "cleanedEndLine" : 57
    }, {
      "file" : {
        "relativePath" : "providers/github.go",
        "extension" : "go",
        "linesOfCode" : 254,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 148,
      "endLine" : 165,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 99
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 119,
      "endLine" : 132,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "providers/provider_default.go",
        "extension" : "go",
        "linesOfCode" : 102,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 44,
      "endLine" : 58,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 119,
      "endLine" : 132,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 71
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 213,
      "endLine" : 227,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 140
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 115,
      "endLine" : 126,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 67
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 137,
      "endLine" : 148,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 97,
      "endLine" : 107,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 53
    }, {
      "file" : {
        "relativePath" : "providers/provider_default.go",
        "extension" : "go",
        "linesOfCode" : 102,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 17,
      "endLine" : 27,
      "cleanedStartLine" : 2,
      "cleanedEndLine" : 10
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 295,
      "endLine" : 306,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 184
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 137,
      "endLine" : 148,
      "cleanedStartLine" : 78,
      "cleanedEndLine" : 86
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 262,
      "endLine" : 270,
      "cleanedStartLine" : 161,
      "cleanedEndLine" : 169
    }, {
      "file" : {
        "relativePath" : "providers/provider_default.go",
        "extension" : "go",
        "linesOfCode" : 102,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 83,
      "endLine" : 91,
      "cleanedStartLine" : 47,
      "cleanedEndLine" : 55
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 299,
      "endLine" : 308,
      "cleanedStartLine" : 179,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "providers/provider_default.go",
        "extension" : "go",
        "linesOfCode" : 102,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 44,
      "endLine" : 53,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 299,
      "endLine" : 308,
      "cleanedStartLine" : 179,
      "cleanedEndLine" : 186
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 213,
      "endLine" : 222,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 138
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 106,
      "endLine" : 113,
      "cleanedStartLine" : 52,
      "cleanedEndLine" : 58
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 198,
      "endLine" : 206,
      "cleanedStartLine" : 120,
      "cleanedEndLine" : 126
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/github.go",
        "extension" : "go",
        "linesOfCode" : 254,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 236,
      "endLine" : 245,
      "cleanedStartLine" : 146,
      "cleanedEndLine" : 151
    }, {
      "file" : {
        "relativePath" : "providers/github.go",
        "extension" : "go",
        "linesOfCode" : 254,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 183,
      "startLine" : 286,
      "endLine" : 295,
      "cleanedStartLine" : 175,
      "cleanedEndLine" : 180
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/google.go",
        "extension" : "go",
        "linesOfCode" : 274,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 197,
      "startLine" : 143,
      "endLine" : 149,
      "cleanedStartLine" : 80,
      "cleanedEndLine" : 85
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 246,
      "endLine" : 254,
      "cleanedStartLine" : 152,
      "cleanedEndLine" : 157
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "providers/provider_default.go",
        "extension" : "go",
        "linesOfCode" : 102,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 71,
      "startLine" : 44,
      "endLine" : 51,
      "cleanedStartLine" : 22,
      "cleanedEndLine" : 27
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 141,
      "endLine" : 148,
      "cleanedStartLine" : 81,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "providers/logingov.go",
        "extension" : "go",
        "linesOfCode" : 231,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 173,
      "startLine" : 213,
      "endLine" : 220,
      "cleanedStartLine" : 131,
      "cleanedEndLine" : 136
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "providers/oidc.go",
        "extension" : "go",
        "linesOfCode" : 115,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 29,
      "endLine" : 34,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "providers/oidc.go",
        "extension" : "go",
        "linesOfCode" : 115,
        "components" : [ "primary::providers" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 84,
      "startLine" : 67,
      "endLine" : 72,
      "cleanedStartLine" : 33,
      "cleanedEndLine" : 38
    } ]
  } ],
  "overallDuplication" : null
}