{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:00.370410Z","repo":{"ref":{"host":"github.com","owner":"DroidKaigi","name":"conference-app-2018"},"default_branch":"master","clone_url":"https://github.com/DroidKaigi/conference-app-2018.git","html_url":"https://github.com/DroidKaigi/conference-app-2018","description":"The Official Conference App for DroidKaigi 2018 Tokyo","stars":1335,"forks":329,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":5970,"primary_language":"Kotlin","license_spdx":"Apache-2.0","created_at":"2017-12-23T15:13:21Z","pushed_at":"2018-09-27T08:57:38Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-01-27T15:52:57Z","owner_type":"Organization","release_assets":[]}},"commit_sha":"f19dd63f8b691d44ba7f758d92c2ca615cdad08d","profile":{"lines_by_language":{"Kotlin":14458,"Java":23},"files_by_category":{"source":286,"config":186,"binary":75,"other":29,"test":23,"docs":4,"generated":1},"source_lines":12833,"test_lines":1648},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.65,"coverage":1.0,"label":"none-detected","breakdown":{"attributed_share":0.0,"suspected_share":0.0,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":0.0,"flagged_releases":0.0,"style_index":0.0},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":72.5,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":100.0,"duplication":66.3,"lint":100.0,"testing":53.6,"docs":65.0,"type_safety":null,"process":40.0},"summary":"Code quality is adequate: test-to-source ratio 0.13, no CI test run detected; 0% of function code in complex or long functions; 7% duplicated lines. Weakest area: process."},"security":{"score":49.5,"confidence":0.85,"coverage":1.0,"label":"poor","breakdown":{"secrets":42.0,"sast":93.7,"dependencies":53.1,"ci_actions":null,"posture":0.0,"scorecard":22.5},"summary":"Security posture is poor: 2 possible secret(s) in the tree, 0 only in history; 13 known vulnerabilities in 3 dependencies. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"ok","tool_version":"scorecard v5.6.0","metrics":{"aggregate":3.0,"check:Maintained":0.0,"check:Code-Review":8.0,"check:Binary-Artifacts":9.0,"check:CII-Best-Practices":0.0,"check:Security-Policy":0.0,"check:Fuzzing":0.0,"check:License":10.0,"check:Branch-Protection":0.0,"check:SAST":0.0},"findings":[],"evidence":[{"kind":"scorecard-check","description":"Scorecard Maintained: 0/10 (0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0)","ref":"Maintained","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Code-Review: 8/10 (Found 12/14 approved changesets -- score normalized to 8)","ref":"Code-Review","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":0.2},{"kind":"scorecard-check","description":"Scorecard Binary-Artifacts: 9/10 (binaries present in source code)","ref":"Binary-Artifacts","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":0.1},{"kind":"scorecard-check","description":"Scorecard CII-Best-Practices: 0/10 (no effort to earn an OpenSSF best practices badge detected)","ref":"CII-Best-Practices","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Security-Policy: 0/10 (security policy file not detected)","ref":"Security-Policy","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":1.0},{"kind":"scorecard-check","description":"Scorecard Fuzzing: 0/10 (project is not fuzzed)","ref":"Fuzzing","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":1.0},{"kind":"scorecard-check","description":"Scorecard License: 10/10 (license file detected)","ref":"License","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":0.0},{"kind":"scorecard-check","description":"Scorecard Branch-Protection: 0/10 (branch protection not enabled on development/release branches)","ref":"Branch-Protection","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":1.0},{"kind":"scorecard-check","description":"Scorecard SAST: 0/10 (SAST tool is not run on all commits -- score normalized to 0)","ref":"SAST","url":"https://scorecard.dev/viewer/?uri=github.com/DroidKaigi/conference-app-2018","weight":1.0}],"data":{"date":"2026-11-09","commit":"f19dd63f8b691d44ba7f758d92c2ca615cdad08d","matches_head":true},"error":null},{"analyzer":"sec-registry","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no registry dependencies declared"},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":1233.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":24496.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2017-11":{"loc":1217,"attributed_loc":0},"2017-12":{"loc":5774,"attributed_loc":0},"2018-01":{"loc":15434,"attributed_loc":0},"2018-02":{"loc":2061,"attributed_loc":0},"2018-03":{"loc":1,"attributed_loc":0},"2018-05":{"loc":9,"attributed_loc":0},"2018-09":{"loc":0,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":458.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":24496.0,"pre_ai_era_burst_loc":0.0,"measured_loc":24496.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":220.25,"median_loc_per_hour":57.22657213316893,"pr_timed_units":1.0,"excluded_import_loc":0.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":4.0,"flagged_releases":0.0,"max_loc_per_day":9.4},"findings":[],"evidence":[],"data":{"releases":[{"from":"v1.0.0","to":"v1.2.2","loc":2198,"days":234.8,"loc_per_day":9.4,"flagged":false},{"from":"v1.2.2","to":"v1.2.3","loc":0,"days":0.65,"loc_per_day":0.0,"flagged":false},{"from":"v1.2.3","to":"v1.2.4","loc":0,"days":0.06,"loc_per_day":0.0,"flagged":false},{"from":"v1.2.4","to":"v1.2.5","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":12833.0,"index":0.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":2.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":1.0},"findings":[{"rule_id":"gitleaks/gcp-api-key","severity":"high","message":"Possible gcp-api-key secret in the current tree","path":"app/google-services.json","line":24,"fingerprint":"app/google-services.json:gcp-api-key:24"},{"rule_id":"gitleaks/gcp-api-key","severity":"high","message":"Possible gcp-api-key secret in the current tree","path":"app/src/main/AndroidManifest.xml","line":185,"fingerprint":"app/src/main/AndroidManifest.xml:gcp-api-key:185"},{"rule_id":"gitleaks/generic-api-key","severity":"low","message":"Possible generic-api-key secret in history (commit bd2c89b0b8); removed from the current tree but still retrievable","path":"deploy.sh","line":3,"fingerprint":"bd2c89b0b84585b2fc5fce75e41d382872b978ae:deploy.sh:generic-api-key:3"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":4.0,"findings_high":0.0,"findings_medium":4.0,"findings_low":0.0,"weighted_findings":2.4,"scanned_lines":12833.0,"parse_errors":1.0},"findings":[{"rule_id":"opengrep/java.android.security.exported_activity","severity":"medium","message":"The application exports an activity. Any application on the device can launch the exported activity which may compromise the integrity of your application or its data.  Ensure that any exported activities do not have privileged access to your application's control plane. [confidence medium]","path":"app/src/main/AndroidManifest.xml","line":20,"fingerprint":"java.android.security.exported_activity:app/src/main/AndroidManifest.xml:20"},{"rule_id":"opengrep/java.android.security.exported_activity","severity":"medium","message":"The application exports an activity. Any application on the device can launch the exported activity which may compromise the integrity of your application or its data.  Ensure that any exported activities do not have privileged access to your application's control plane. [confidence medium]","path":"app/src/main/AndroidManifest.xml","line":70,"fingerprint":"java.android.security.exported_activity:app/src/main/AndroidManifest.xml:70"},{"rule_id":"opengrep/java.android.security.exported_activity","severity":"medium","message":"The application exports an activity. Any application on the device can launch the exported activity which may compromise the integrity of your application or its data.  Ensure that any exported activities do not have privileged access to your application's control plane. [confidence medium]","path":"app/src/main/AndroidManifest.xml","line":130,"fingerprint":"java.android.security.exported_activity:app/src/main/AndroidManifest.xml:130"},{"rule_id":"opengrep/java.android.security.exported_activity","severity":"medium","message":"The application exports an activity. Any application on the device can launch the exported activity which may compromise the integrity of your application or its data.  Ensure that any exported activities do not have privileged access to your application's control plane. [confidence medium]","path":"app/src/main/AndroidManifest.xml","line":150,"fingerprint":"java.android.security.exported_activity:app/src/main/AndroidManifest.xml:150"}],"evidence":[],"data":{"rulesets":["kotlin","java"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":3.0,"vulnerabilities":13.0,"vulns_critical":3.0,"vulns_high":4.0,"vulns_medium":5.0,"vulns_low":1.0,"vulns_unknown":0.0,"penalty":38.0},"findings":[{"rule_id":"osv/GHSA-69p6-wvmq-27gg","severity":"critical","message":"git@1.3.0 (RubyGems) is affected by GHSA-69p6-wvmq-27gg","path":"Gemfile.lock","line":null,"fingerprint":"git@1.3.0 (RubyGems):GHSA-69p6-wvmq-27gg"},{"rule_id":"osv/GHSA-52p9-v744-mwjj","severity":"critical","message":"kramdown@1.16.2 (RubyGems) is affected by GHSA-52p9-v744-mwjj","path":"Gemfile.lock","line":null,"fingerprint":"kramdown@1.16.2 (RubyGems):GHSA-52p9-v744-mwjj"},{"rule_id":"osv/GHSA-mqm2-cgpr-p4m6","severity":"critical","message":"kramdown@1.16.2 (RubyGems) is affected by GHSA-mqm2-cgpr-p4m6","path":"Gemfile.lock","line":null,"fingerprint":"kramdown@1.16.2 (RubyGems):GHSA-mqm2-cgpr-p4m6"},{"rule_id":"osv/GHSA-h27x-rffw-24p4","severity":"high","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-h27x-rffw-24p4","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-h27x-rffw-24p4"},{"rule_id":"osv/GHSA-jxhc-q857-3j6g","severity":"high","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-jxhc-q857-3j6g","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-jxhc-q857-3j6g"},{"rule_id":"osv/GHSA-pfpr-3463-c6jh","severity":"high","message":"git@1.3.0 (RubyGems) is affected by GHSA-pfpr-3463-c6jh","path":"Gemfile.lock","line":null,"fingerprint":"git@1.3.0 (RubyGems):GHSA-pfpr-3463-c6jh"},{"rule_id":"osv/GHSA-pphf-gfrm-v32r","severity":"high","message":"git@1.3.0 (RubyGems) is affected by GHSA-pphf-gfrm-v32r","path":"Gemfile.lock","line":null,"fingerprint":"git@1.3.0 (RubyGems):GHSA-pphf-gfrm-v32r"},{"rule_id":"osv/GHSA-8gmh-2hhj-2hv9","severity":"medium","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-8gmh-2hhj-2hv9","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-8gmh-2hhj-2hv9"},{"rule_id":"osv/GHSA-9crm-g4mf-wc5j","severity":"medium","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-9crm-g4mf-wc5j","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-9crm-g4mf-wc5j"},{"rule_id":"osv/GHSA-9f42-57jx-vpp3","severity":"medium","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-9f42-57jx-vpp3","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-9f42-57jx-vpp3"},{"rule_id":"osv/GHSA-j82w-28jv-3pmj","severity":"medium","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-j82w-28jv-3pmj","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-j82w-28jv-3pmj"},{"rule_id":"osv/GHSA-qq38-m9mg-xjj5","severity":"medium","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-qq38-m9mg-xjj5","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-qq38-m9mg-xjj5"},{"rule_id":"osv/GHSA-539f-xcgw-2gjg","severity":"low","message":"addressable@2.5.2 (RubyGems) is affected by GHSA-539f-xcgw-2gjg","path":"Gemfile.lock","line":null,"fingerprint":"addressable@2.5.2 (RubyGems):GHSA-539f-xcgw-2gjg"}],"evidence":[],"data":{"ecosystems":["RubyGems"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.065,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":766.0,"function_nloc":5110.0,"mean_ccn":1.45,"p90_ccn":2.0,"complex_functions":0.0,"long_functions":0.0,"many_param_functions":1.0,"risky_nloc_share":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":6646.0,"duplicated_lines":455.0,"duplicated_share":0.0685,"files":286.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/data/api/response/SponsorPlan.kt:14 and app/src/main/java/io/github/droidkaigi/confsched2018/data/db/entity/SponsorPlanEntity.kt:12","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/data/api/response/SponsorPlan.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/data/api/response/SponsorPlan.kt#L14","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/data/api/response/mapper/SessionDataMapperExt.kt:31 and app/src/main/java/io/github/droidkaigi/confsched2018/data/db/entity/mapper/SessionDataMapperExt.kt:74","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/data/api/response/mapper/SessionDataMapperExt.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/data/api/response/mapper/SessionDataMapperExt.kt#L31","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/di/NetworkModule.kt:45 and app/src/main/java/io/github/droidkaigi/confsched2018/di/NetworkModule.kt:58","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/di/NetworkModule.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/di/NetworkModule.kt#L45","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/about/AboutThisAppActivity.kt:30 and app/src/main/java/io/github/droidkaigi/confsched2018/presentation/contributor/ContributorsActivity.kt:31","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/about/AboutThisAppActivity.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/about/AboutThisAppActivity.kt#L30","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/mapper/ResultMapperExt.kt:13 and app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/mapper/ResultMapperExt.kt:24","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/mapper/ResultMapperExt.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/mapper/ResultMapperExt.kt#L13","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/transition/Rotate.kt:4 and app/src/main/java/io/github/droidkaigi/confsched2018/util/ProgressTimeLatch.kt:4","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/transition/Rotate.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/common/transition/Rotate.kt#L4","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailViewModel.kt:30 and app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsViewModel.kt:35","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailViewModel.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/detail/SessionDetailViewModel.kt#L30","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt:61 and app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt:75","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/favorite/FavoriteSessionsFragment.kt#L61","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchSessionsViewModel.kt:25 and app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchSpeakersViewModel.kt:26","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchSessionsViewModel.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/search/SearchSessionsViewModel.kt#L25","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt:107 and app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/RoomSessionsFragment.kt:116","ref":"app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt","url":"https://github.com/DroidKaigi/conference-app-2018/blob/f19dd63f8b691d44ba7f758d92c2ca615cdad08d/app/src/main/java/io/github/droidkaigi/confsched2018/presentation/sessions/AllSessionsFragment.kt#L107","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"weighted_findings":0.0,"scanned_lines":12833.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.2568,"check:ci_present":1.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":1.0,"check:tests_cochange":0.2222,"test_lines":1648.0,"source_lines":12833.0,"test_ratio":0.1284,"ci_files":1.0,"cochange_share":0.0556,"cochange_commits":216.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .circleci/config.yml","ref":".circleci/config.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs linters (ktlint)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":[],"lint_commands":["ktlint"]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":253.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null}],"flags":[]}