{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D7","name":"Architectural Integrity","shortDescription":{"text":"Architectural Integrity"},"helpUri":"https://codehealth.canine.dev/dimensions/D7"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"}]}},"results":[{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 23 significant file(s) lose their only recent owner: SwiftCompilerSources/Sources/Optimizer/FunctionPasses/RedundantLoadElimination.swift, SwiftCompilerSources/Sources/SIL/Utilities/SSAUpdater.swift, SwiftCompilerSources/Sources/Optimizer/FunctionPasses/DeadAccessScopeElimination.swift, SwiftCompilerSources/Sources/Optimizer/InstructionSimplification/SimplifyBeginBorrow.swift, SwiftCompilerSources/Sources/Optimizer/InstructionSimplification/SimplifyPointerToAddress.swift, SwiftCompilerSources/Sources/SIL/DataStructures/Worklist.swift, SwiftCompilerSources/Sources/SIL/DataStructures/Set.swift, SwiftCompilerSources/Sources/Optimizer/FunctionPasses/DeadStoreElimination.swift (\u002B15 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"94b04e1930ac1b8b598a0ffff1ca019371de9c5d2a07f34db5ad7a607dc4bb3f"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #2: If anonymized user #2 becomes unavailable, 18 significant file(s) lose their only recent owner: utils/swift-dev-utils/Sources/CrashReduce/Reproducer.swift, utils/swift-dev-utils/Sources/CrashReduce/ProcessReproducers.swift, utils/swift-dev-utils/Sources/CrashReduce/Reducing.swift, utils/swift-dev-utils/Sources/CrashReduce/CrashLog.swift, utils/swift-dev-utils/Sources/SwiftXcodeGen/Command/KnownCommand.swift, utils/swift-dev-utils/Sources/crash-reduce/crash-reduce.swift, utils/swift-dev-utils/Sources/CrashReduce/SymbolParser.swift, utils/swift-dev-utils/Sources/Utils/Misc.swift (\u002B10 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"397f95a90108da5fba69cd2bbbab6050dac413d410a72860c956d15a0ccce3ec"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #3: If anonymized user #3 becomes unavailable, 12 significant file(s) lose their only recent owner: stdlib/public/RuntimeModule/Elf.swift, stdlib/public/RuntimeModule/CompactImageMap.swift, stdlib/public/RuntimeModule/CompactBacktrace.swift, stdlib/public/libexec/swift-backtrace/TargetWindows.swift, stdlib/public/libexec/swift-backtrace/TargetLinux.swift, stdlib/public/RuntimeModule/FramePointerUnwinder.swift, stdlib/public/RuntimeModule/Address.swift, stdlib/public/RuntimeModule/Image.swift (\u002B4 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0b4a03fbaf4242e07e29fb61ef29b8e9dcedd7787dc497654f05904f3137c509"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #4: If anonymized user #4 becomes unavailable, 9 significant file(s) lose their only recent owner: utils/swift_build_support/swift_build_support/helpers/wasmswiftsdkhelpers.py, utils/swift_build_support/swift_build_support/products/emscriptensysroot.py, utils/swift_build_support/swift_build_support/helpers/wasmstdlibhelpers.py, utils/swift_build_support/swift_build_support/productpipeline_list_builder.py, utils/swift_build_support/swift_build_support/products/emscriptenswiftsdk.py, utils/swift_build_support/swift_build_support/toolchain.py, utils/swift_build_support/swift_build_support/helpers/wasmsysroothelpers.py, utils/swift_build_support/swift_build_support/products/emscriptenstdlib.py (\u002B1 more). Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3d2aa1e5659a796438d0bb7568fa0b36e91ae3eb1b9912872959d0a2d4138286"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #5: If anonymized user #5 becomes unavailable, 7 significant file(s) lose their only recent owner: benchmark/single-source/ToddCoxeter.swift, benchmark/utils/TestsUtils.swift, benchmark/multi-source/Monoids/Solver.swift, benchmark/multi-source/Monoids/RewritingSystem.swift, validation-test/Sema/type_checker_perf/slow/rdar119215676.swift, validation-test/Sema/type_checker_perf/fast/rdar170160180.swift, validation-test/Sema/keypath_bidirectional_inference.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6326bd2b4e36062efa1078160dfefddc19a062a6abc0000cef9539bea24a98c9"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #6: If anonymized user #6 becomes unavailable, 7 significant file(s) lose their only recent owner: stdlib/public/core/EmbeddedCasting.swift, stdlib/public/core/StaticBigInt.swift, stdlib/public/Concurrency/Deque/Deque\u002BStorage.swift, stdlib/public/core/EmbeddedPrint.swift, stdlib/public/core/NewtypeWrapper.swift, stdlib/public/core/StringSwitch.swift, stdlib/public/core/InputStream.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4364ba832e6bf7ecac7ece6e2aed5f26bf587078e7d304901368532ca14524d2"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #7: If anonymized user #7 becomes unavailable, 6 significant file(s) lose their only recent owner: stdlib/private/StdlibCollectionUnittest/MinimalCollections.swift, stdlib/public/core/UniqueArray/UniqueArray\u002BReplacements.swift, stdlib/public/core/RigidArray/RigidArray.swift, utils/gen-unicode-data/Sources/GenGraphemeBreakProperty/main.swift, validation-test/stdlib/UnicodeScalarProperties.swift, SwiftCompilerSources/Sources/Optimizer/InstructionSimplification/SimplifyBorrow.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a9a2c50d3fd5e46ef798e1ae108c4af4f8e4976a748636ec0043d8bbd4f02e74"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #8: If anonymized user #8 becomes unavailable, 5 significant file(s) lose their only recent owner: utils/swift_snapshot_tool/Sources/swift_snapshot_tool/bisect_toolchains.swift, utils/swift_snapshot_tool/Sources/swift_snapshot_tool/download_toolchain.swift, utils/swift_snapshot_tool/Sources/swift_snapshot_tool/get_tags.swift, utils/swift_snapshot_tool/Sources/swift_snapshot_tool/run_toolchain.swift, utils/swift_snapshot_tool/Sources/swift_snapshot_tool/download_snapshot.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"aadaad00b3d3b6c40bcfd0ec232b8759c750f8f07d5cfbaeb1521c2305fc0ad3"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #9: If anonymized user #9 becomes unavailable, 4 significant file(s) lose their only recent owner: utils/update_verify_tests/core.py, tools/swift-function-caller-generator/Sources/swift-function-caller-generator/swift-function-caller-generator.swift, utils/update_generated_tests/litplugin.py, utils/lit_support/split_file.py. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7477f7006f633654a17b68c028b727ff6919d80238ed7b4f7db3270e6b4f3df0"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #10: If anonymized user #10 becomes unavailable, 4 significant file(s) lose their only recent owner: validation-test/stdlib/String.swift, benchmark/single-source/Breadcrumbs.swift, benchmark/single-source/UTF16Decode.swift, validation-test/stdlib/StringBreadcrumbs.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5204437ad6a541440bbbc46797c25d3badab6346b9597a80d66df478ea3c1c5a"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #11: If anonymized user #11 becomes unavailable, 4 significant file(s) lose their only recent owner: stdlib/public/core/Span/MutableRawSpan.swift, stdlib/public/core/KeyValuePairs.swift, stdlib/public/core/ArrayType.swift, stdlib/public/core/FullyInhabited.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6d05d1e285fdd897c5eb6e3c4b3e8f6bd28eeeae8c22f06636eefc4afd1e93c8"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #12: If anonymized user #12 becomes unavailable, 4 significant file(s) lose their only recent owner: utils/swift_build_support/swift_build_support/host_specific_configuration.py, validation-test/Evolution/Inputs/protocol_add_reparented.swift, validation-test/Evolution/test_protocol_add_reparented.swift, validation-test/Evolution/Inputs/protocol_add_reparented_seq.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0815bfcd290741306df7071088e8745076d1fd9b43b20900e084d80c7ebc7f12"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #13: If anonymized user #13 becomes unavailable, 4 significant file(s) lose their only recent owner: tools/swift-inspect/Sources/SwiftInspectLinux/Process.swift, benchmark/single-source/WithUnsafeCurrentTask.swift, benchmark/single-source/ExecutorEnqueue.swift, benchmark/single-source/TaskLocalGet.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e18c08d8a1b1af70f22db06de6bd5c4e42b7fae435ea669137f6fcfd2f9a4e97"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #14: If anonymized user #14 becomes unavailable, 3 significant file(s) lose their only recent owner: SwiftCompilerSources/Sources/Optimizer/FunctionPasses/ObjCBridgingOptimization.swift, stdlib/public/RuntimeModule/Registers.swift, stdlib/public/libexec/swift-backtrace/AnsiColor.swift. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1058a848e99d56ca60447e7a07d7e21b7de6c696a2548bd1f484f30988dfa59f"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #15: If anonymized user #15 becomes unavailable, 3 significant file(s) lose their only recent owner: utils/update_checkout/update_checkout/cli_arguments.py, utils/swift_build_support/swift_build_support/shell.py, utils/update_checkout/update_checkout/parallel_runner.py. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"294a76106f2dc6ac64935532ceb15040aa0f79a8b0bf5e3e2cc7c90110837cc6"}},{"ruleId":"D16","level":"note","message":{"text":"Further sole-owners (lower concentration): 25 other contributor(s) are each the sole owner of a small amount of code below the off-boarding threshold \u2014 folded into the bus-factor score and metrics (142 single-owned of 727 analysed files in total)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6eac528f2429e724e1a97ed868f79eefbcf1888dab4af9a9e673429369bb5b2f"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}