{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:06.203727Z","repo":{"ref":{"host":"github.com","owner":"maccman","name":"monocle"},"default_branch":"master","clone_url":"https://github.com/maccman/monocle.git","html_url":"https://github.com/maccman/monocle","description":"Link and news sharing","stars":1437,"forks":114,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":776,"primary_language":"Ruby","license_spdx":"MIT","created_at":"2013-09-30T23:28:34Z","pushed_at":"2014-07-16T16:18:16Z","security_policy_url":null,"distribution":{"owner_created_at":"2008-03-04T15:53:35Z","owner_type":"User","release_assets":[]}},"commit_sha":"793f00fad23d3f84cf945f84fceacc4796bf5bf7","profile":{"lines_by_language":{"Ruby":2496,"SQL":765,"JavaScript":50},"files_by_category":{"other":112,"binary":64,"source":51,"vendored":22,"config":2,"docs":2,"generated":1},"source_lines":3311,"test_lines":0},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.44,"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":null,"style_index":0.0},"summary":"No AI attribution or AI-consistent velocity signals detected."},"quality":{"score":61.7,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":100.0,"duplication":73.2,"lint":100.0,"testing":0.0,"docs":65.0,"type_safety":null,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 0% of function code in complex or long functions; 5% duplicated lines. Weakest area: testing."},"security":{"score":51.9,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":63.1,"dependencies":6.6,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 132 known vulnerabilities in 20 dependencies. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"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":17.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":3545.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2013-09":{"loc":3453,"attributed_loc":0},"2013-10":{"loc":0,"attributed_loc":0},"2013-11":{"loc":92,"attributed_loc":0},"2014-06":{"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":6.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":92.0,"pre_ai_era_burst_loc":0.0,"measured_loc":92.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":14.055757243646825,"median_loc_per_hour":0.0,"pr_timed_units":0.0,"excluded_import_loc":3453.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["959e584cb3c14e4b30a9910172bf2090a2aa4985"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":3311.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":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":12.0,"findings_high":0.0,"findings_medium":12.0,"findings_low":0.0,"weighted_findings":3.35,"scanned_lines":2546.0,"parse_errors":5.0},"findings":[{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.alias-for-html-safe","severity":"medium","message":"The syntax `<%== ... %>` is an alias for `html_safe`. This means the content inside these tags will be rendered as raw HTML. This may expose your application to cross-site scripting. If you need raw HTML, prefer using the more explicit `html_safe` and be sure to correctly sanitize variables using a  [confidence low]","path":"app/views/authorized.erb","line":2,"fingerprint":"ruby.rails.security.audit.xss.templates.alias-for-html-safe:app/views/authorized.erb:2"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.var-in-script-tag","severity":"medium","message":"Detected a template variable used in a script tag. Although template variables are HTML escaped, HTML escaping does not always prevent cross-site scripting (XSS) attacks when used directly in JavaScript. If you need to do this, use `escape_javascript` or its alias, `j`. However, this will not protec [confidence low]","path":"app/views/authorized.erb","line":2,"fingerprint":"ruby.rails.security.audit.xss.templates.var-in-script-tag:app/views/authorized.erb:2"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.var-in-script-tag","severity":"medium","message":"Detected a template variable used in a script tag. Although template variables are HTML escaped, HTML escaping does not always prevent cross-site scripting (XSS) attacks when used directly in JavaScript. If you need to do this, use `escape_javascript` or its alias, `j`. However, this will not protec [confidence low]","path":"app/views/index.erb","line":9,"fingerprint":"ruby.rails.security.audit.xss.templates.var-in-script-tag:app/views/index.erb:9"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.var-in-script-tag","severity":"medium","message":"Detected a template variable used in a script tag. Although template variables are HTML escaped, HTML escaping does not always prevent cross-site scripting (XSS) attacks when used directly in JavaScript. If you need to do this, use `escape_javascript` or its alias, `j`. However, this will not protec [confidence low]","path":"app/views/mobile.erb","line":22,"fingerprint":"ruby.rails.security.audit.xss.templates.var-in-script-tag:app/views/mobile.erb:22"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.alias-for-html-safe","severity":"medium","message":"The syntax `<%== ... %>` is an alias for `html_safe`. This means the content inside these tags will be rendered as raw HTML. This may expose your application to cross-site scripting. If you need raw HTML, prefer using the more explicit `html_safe` and be sure to correctly sanitize variables using a  [confidence low]","path":"app/views/post_body.erb","line":31,"fingerprint":"ruby.rails.security.audit.xss.templates.alias-for-html-safe:app/views/post_body.erb:31"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.alias-for-html-safe","severity":"medium","message":"The syntax `<%== ... %>` is an alias for `html_safe`. This means the content inside these tags will be rendered as raw HTML. This may expose your application to cross-site scripting. If you need raw HTML, prefer using the more explicit `html_safe` and be sure to correctly sanitize variables using a  [confidence low]","path":"app/views/setup.erb","line":3,"fingerprint":"ruby.rails.security.audit.xss.templates.alias-for-html-safe:app/views/setup.erb:3"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.var-in-href","severity":"medium","message":"Detected a template variable used in an anchor tag with the 'href' attribute. This allows a malicious actor to input the 'javascript:' URI and is subject to cross- site scripting (XSS) attacks. If using a relative URL, start with a literal forward slash and concatenate the URL, like this: href='/<%= [confidence low]","path":"app/views/spider_page.erb","line":11,"fingerprint":"ruby.rails.security.audit.xss.templates.var-in-href:app/views/spider_page.erb:11"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.var-in-href","severity":"medium","message":"Detected a template variable used in an anchor tag with the 'href' attribute. This allows a malicious actor to input the 'javascript:' URI and is subject to cross- site scripting (XSS) attacks. If using a relative URL, start with a literal forward slash and concatenate the URL, like this: href='/<%= [confidence low]","path":"app/views/spider_page.erb","line":15,"fingerprint":"ruby.rails.security.audit.xss.templates.var-in-href:app/views/spider_page.erb:15"},{"rule_id":"opengrep/ruby.rails.security.audit.xss.templates.alias-for-html-safe","severity":"medium","message":"The syntax `<%== ... %>` is an alias for `html_safe`. This means the content inside these tags will be rendered as raw HTML. This may expose your application to cross-site scripting. If you need raw HTML, prefer using the more explicit `html_safe` and be sure to correctly sanitize variables using a  [confidence low]","path":"app/views/spider_page.erb","line":22,"fingerprint":"ruby.rails.security.audit.xss.templates.alias-for-html-safe:app/views/spider_page.erb:22"},{"rule_id":"opengrep/ruby.lang.security.weak-hashes-md5","severity":"medium","message":"Should not use md5 to generate hashes. md5 is proven to be vulnerable through the use of brute-force attacks. Could also result in collisions, leading to potential collision attacks. Use SHA256 or other hashing functions instead. [confidence medium]","path":"lib/gravatar.rb","line":5,"fingerprint":"ruby.lang.security.weak-hashes-md5:lib/gravatar.rb:5"},{"rule_id":"opengrep/ruby.lang.security.dangerous-subshell","severity":"medium","message":"Detected non-static command inside `...`. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low]","path":"lib/tasks/release.rb","line":14,"fingerprint":"ruby.lang.security.dangerous-subshell:lib/tasks/release.rb:14"},{"rule_id":"opengrep/ruby.lang.security.dangerous-subshell","severity":"medium","message":"Detected non-static command inside `...`. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. [confidence low]","path":"lib/tasks/release.rb","line":27,"fingerprint":"ruby.lang.security.dangerous-subshell:lib/tasks/release.rb:27"}],"evidence":[],"data":{"rulesets":["ruby","javascript"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":20.0,"vulnerabilities":132.0,"vulns_critical":7.0,"vulns_high":50.0,"vulns_medium":39.0,"vulns_low":11.0,"vulns_unknown":25.0,"penalty":163.0},"findings":[{"rule_id":"osv/GHSA-vx9g-377x-xwxq","severity":"critical","message":"gibbon@0.5.0 (RubyGems) is affected by GHSA-vx9g-377x-xwxq","path":"Gemfile.lock","line":null,"fingerprint":"gibbon@0.5.0 (RubyGems):GHSA-vx9g-377x-xwxq"},{"rule_id":"osv/GHSA-cr5j-953j-xw5p","severity":"critical","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-cr5j-953j-xw5p","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-cr5j-953j-xw5p"},{"rule_id":"osv/GHSA-fr52-4hqw-p27f","severity":"critical","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-fr52-4hqw-p27f","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-fr52-4hqw-p27f"},{"rule_id":"osv/GHSA-qxcg-xjjg-66mj","severity":"critical","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-qxcg-xjjg-66mj","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-qxcg-xjjg-66mj"},{"rule_id":"osv/GHSA-pm55-qfxr-h247","severity":"critical","message":"omniauth@1.1.4 (RubyGems) is affected by GHSA-pm55-qfxr-h247","path":"Gemfile.lock","line":null,"fingerprint":"omniauth@1.1.4 (RubyGems):GHSA-pm55-qfxr-h247"},{"rule_id":"osv/GHSA-wq4h-7r42-5hrr","severity":"critical","message":"rack@1.5.2 (RubyGems) is affected by GHSA-wq4h-7r42-5hrr","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-wq4h-7r42-5hrr"},{"rule_id":"osv/GHSA-34r7-q49f-h37c","severity":"critical","message":"uglifier@2.1.2 (RubyGems) is affected by GHSA-34r7-q49f-h37c","path":"Gemfile.lock","line":null,"fingerprint":"uglifier@2.1.2 (RubyGems):GHSA-34r7-q49f-h37c"},{"rule_id":"osv/GHSA-8474-xrp6-wh69","severity":"high","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-8474-xrp6-wh69","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-8474-xrp6-wh69"},{"rule_id":"osv/GHSA-hm5p-x4rq-38w4","severity":"high","message":"httparty@0.11.0 (RubyGems) is affected by GHSA-hm5p-x4rq-38w4","path":"Gemfile.lock","line":null,"fingerprint":"httparty@0.11.0 (RubyGems):GHSA-hm5p-x4rq-38w4"},{"rule_id":"osv/GHSA-34hf-g744-jw64","severity":"high","message":"i18n@0.6.4 (RubyGems) is affected by GHSA-34hf-g744-jw64","path":"Gemfile.lock","line":null,"fingerprint":"i18n@0.6.4 (RubyGems):GHSA-34hf-g744-jw64"},{"rule_id":"osv/GHSA-jphg-qwrw-7w9g","severity":"high","message":"json@1.7.7 (RubyGems) is affected by GHSA-jphg-qwrw-7w9g","path":"Gemfile.lock","line":null,"fingerprint":"json@1.7.7 (RubyGems):GHSA-jphg-qwrw-7w9g"},{"rule_id":"osv/GHSA-c32j-vqhx-rx3x","severity":"high","message":"jwt@0.1.8 (RubyGems) is affected by GHSA-c32j-vqhx-rx3x","path":"Gemfile.lock","line":null,"fingerprint":"jwt@0.1.8 (RubyGems):GHSA-c32j-vqhx-rx3x"},{"rule_id":"osv/GHSA-242x-7cm6-4w8j","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-242x-7cm6-4w8j","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-242x-7cm6-4w8j"},{"rule_id":"osv/GHSA-2rr5-8q37-2w7h","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-2rr5-8q37-2w7h","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-2rr5-8q37-2w7h"},{"rule_id":"osv/GHSA-59gp-qqm7-cw4j","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-59gp-qqm7-cw4j","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-59gp-qqm7-cw4j"},{"rule_id":"osv/GHSA-6qvp-r6r3-9p7h","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-6qvp-r6r3-9p7h","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-6qvp-r6r3-9p7h"},{"rule_id":"osv/GHSA-7553-jr98-vx47","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-7553-jr98-vx47","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-7553-jr98-vx47"},{"rule_id":"osv/GHSA-7hp2-xwpj-95jq","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-7hp2-xwpj-95jq","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-7hp2-xwpj-95jq"},{"rule_id":"osv/GHSA-8c56-cpmw-89x7","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-8c56-cpmw-89x7","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-8c56-cpmw-89x7"},{"rule_id":"osv/GHSA-c4rq-3m3g-8wgx","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-c4rq-3m3g-8wgx","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-c4rq-3m3g-8wgx"},{"rule_id":"osv/GHSA-cf46-6xxh-pc75","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-cf46-6xxh-pc75","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-cf46-6xxh-pc75"},{"rule_id":"osv/GHSA-cgx6-hpwq-fhv5","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-cgx6-hpwq-fhv5","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-cgx6-hpwq-fhv5"},{"rule_id":"osv/GHSA-crjr-9rc5-ghw8","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-crjr-9rc5-ghw8","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-crjr-9rc5-ghw8"},{"rule_id":"osv/GHSA-gx8x-g87m-h5q6","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-gx8x-g87m-h5q6","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-gx8x-g87m-h5q6"},{"rule_id":"osv/GHSA-jc36-42cf-vqwj","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-jc36-42cf-vqwj","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-jc36-42cf-vqwj"},{"rule_id":"osv/GHSA-jw9f-hh49-cvp9","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-jw9f-hh49-cvp9","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-jw9f-hh49-cvp9"},{"rule_id":"osv/GHSA-mrxw-mxhj-p664","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-mrxw-mxhj-p664","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-mrxw-mxhj-p664"},{"rule_id":"osv/GHSA-pf6m-fxpq-fg8v","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-pf6m-fxpq-fg8v","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-pf6m-fxpq-fg8v"},{"rule_id":"osv/GHSA-r58r-74gx-6wx3","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-r58r-74gx-6wx3","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-r58r-74gx-6wx3"},{"rule_id":"osv/GHSA-v4f8-2847-rwm7","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-v4f8-2847-rwm7","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-v4f8-2847-rwm7"},{"rule_id":"osv/GHSA-v6gp-9mmm-c6p5","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-v6gp-9mmm-c6p5","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-v6gp-9mmm-c6p5"},{"rule_id":"osv/GHSA-vmfx-gcfq-wvm2","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-vmfx-gcfq-wvm2","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-vmfx-gcfq-wvm2"},{"rule_id":"osv/GHSA-x2fm-93ww-ggvx","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-x2fm-93ww-ggvx","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-x2fm-93ww-ggvx"},{"rule_id":"osv/GHSA-xh29-r2w5-wx8m","severity":"high","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-xh29-r2w5-wx8m","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-xh29-r2w5-wx8m"},{"rule_id":"osv/GHSA-7359-3c6r-hfc2","severity":"high","message":"oauth@0.4.7 (RubyGems) is affected by GHSA-7359-3c6r-hfc2","path":"Gemfile.lock","line":null,"fingerprint":"oauth@0.4.7 (RubyGems):GHSA-7359-3c6r-hfc2"},{"rule_id":"osv/GHSA-pp92-crg2-gfv9","severity":"high","message":"oauth2@0.8.1 (RubyGems) is affected by GHSA-pp92-crg2-gfv9","path":"Gemfile.lock","line":null,"fingerprint":"oauth2@0.8.1 (RubyGems):GHSA-pp92-crg2-gfv9"},{"rule_id":"osv/GHSA-9pr6-grf4-x2fr","severity":"high","message":"omniauth@1.1.4 (RubyGems) is affected by GHSA-9pr6-grf4-x2fr","path":"Gemfile.lock","line":null,"fingerprint":"omniauth@1.1.4 (RubyGems):GHSA-9pr6-grf4-x2fr"},{"rule_id":"osv/GHSA-ww4x-rwq6-qpgf","severity":"high","message":"omniauth@1.1.4 (RubyGems) is affected by GHSA-ww4x-rwq6-qpgf","path":"Gemfile.lock","line":null,"fingerprint":"omniauth@1.1.4 (RubyGems):GHSA-ww4x-rwq6-qpgf"},{"rule_id":"osv/GHSA-3h57-hmj3-gj3p","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-3h57-hmj3-gj3p","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-3h57-hmj3-gj3p"},{"rule_id":"osv/GHSA-5f9h-9pjv-v6j7","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-5f9h-9pjv-v6j7","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-5f9h-9pjv-v6j7"},{"rule_id":"osv/GHSA-5v64-555j-wjxm","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-5v64-555j-wjxm","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-5v64-555j-wjxm"},{"rule_id":"osv/GHSA-625h-95r8-8xpm","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-625h-95r8-8xpm","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-625h-95r8-8xpm"},{"rule_id":"osv/GHSA-65f5-mfpf-vfhj","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-65f5-mfpf-vfhj","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-65f5-mfpf-vfhj"},{"rule_id":"osv/GHSA-6xw4-3v39-52mm","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-6xw4-3v39-52mm","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-6xw4-3v39-52mm"},{"rule_id":"osv/GHSA-7wqh-767x-r66v","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-7wqh-767x-r66v","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-7wqh-767x-r66v"},{"rule_id":"osv/GHSA-8vqr-qjwx-82mw","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-8vqr-qjwx-82mw","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-8vqr-qjwx-82mw"},{"rule_id":"osv/GHSA-gjh7-p2fx-99vx","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-gjh7-p2fx-99vx","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-gjh7-p2fx-99vx"},{"rule_id":"osv/GHSA-h2jq-g4cq-5ppq","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-h2jq-g4cq-5ppq","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-h2jq-g4cq-5ppq"},{"rule_id":"osv/GHSA-hxqx-xwvh-44m2","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-hxqx-xwvh-44m2","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-hxqx-xwvh-44m2"},{"rule_id":"osv/GHSA-j6w9-fv6q-3q52","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-j6w9-fv6q-3q52","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-j6w9-fv6q-3q52"},{"rule_id":"osv/GHSA-mxw3-3hh2-x2mh","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-mxw3-3hh2-x2mh","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-mxw3-3hh2-x2mh"},{"rule_id":"osv/GHSA-p543-xpfm-54cp","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-p543-xpfm-54cp","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-p543-xpfm-54cp"},{"rule_id":"osv/GHSA-v569-hp3g-36wr","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-v569-hp3g-36wr","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-v569-hp3g-36wr"},{"rule_id":"osv/GHSA-w9pc-fmgc-vxvw","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-w9pc-fmgc-vxvw","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-w9pc-fmgc-vxvw"},{"rule_id":"osv/GHSA-wpv5-97wm-hp9c","severity":"high","message":"rack@1.5.2 (RubyGems) is affected by GHSA-wpv5-97wm-hp9c","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-wpv5-97wm-hp9c"},{"rule_id":"osv/GHSA-qp49-3pvw-x4m5","severity":"high","message":"sinatra@1.4.3 (RubyGems) is affected by GHSA-qp49-3pvw-x4m5","path":"Gemfile.lock","line":null,"fingerprint":"sinatra@1.4.3 (RubyGems):GHSA-qp49-3pvw-x4m5"},{"rule_id":"osv/GHSA-pr3h-jjhj-573x","severity":"high","message":"sprockets@2.9.3 (RubyGems) is affected by GHSA-pr3h-jjhj-573x","path":"Gemfile.lock","line":null,"fingerprint":"sprockets@2.9.3 (RubyGems):GHSA-pr3h-jjhj-573x"},{"rule_id":"osv/GHSA-2j26-frm8-cmj9","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-2j26-frm8-cmj9","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-2j26-frm8-cmj9"},{"rule_id":"osv/GHSA-89vf-4333-qx8v","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-89vf-4333-qx8v","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-89vf-4333-qx8v"},{"rule_id":"osv/GHSA-9c2j-593q-3g82","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-9c2j-593q-3g82","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-9c2j-593q-3g82"},{"rule_id":"osv/GHSA-9fh3-vh3h-q4g3","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-9fh3-vh3h-q4g3","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-9fh3-vh3h-q4g3"},{"rule_id":"osv/GHSA-cg4j-q9v8-6v38","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-cg4j-q9v8-6v38","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-cg4j-q9v8-6v38"},{"rule_id":"osv/GHSA-h835-75hw-pj89","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-h835-75hw-pj89","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-h835-75hw-pj89"},{"rule_id":"osv/GHSA-j6gc-792m-qgm2","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-j6gc-792m-qgm2","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-j6gc-792m-qgm2"},{"rule_id":"osv/GHSA-j96r-xvjq-r9pg","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-j96r-xvjq-r9pg","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-j96r-xvjq-r9pg"},{"rule_id":"osv/GHSA-pj73-v5mw-pm9j","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-pj73-v5mw-pm9j","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-pj73-v5mw-pm9j"},{"rule_id":"osv/GHSA-qv8p-v9qw-wc7g","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-qv8p-v9qw-wc7g","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-qv8p-v9qw-wc7g"},{"rule_id":"osv/GHSA-v9v4-7jp6-8c73","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-v9v4-7jp6-8c73","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-v9v4-7jp6-8c73"},{"rule_id":"osv/GHSA-xgr2-v94m-rc9g","severity":"medium","message":"activesupport@3.0.0 (RubyGems) is affected by GHSA-xgr2-v94m-rc9g","path":"Gemfile.lock","line":null,"fingerprint":"activesupport@3.0.0 (RubyGems):GHSA-xgr2-v94m-rc9g"},{"rule_id":"osv/GHSA-5pq7-52mg-hr42","severity":"medium","message":"httparty@0.11.0 (RubyGems) is affected by GHSA-5pq7-52mg-hr42","path":"Gemfile.lock","line":null,"fingerprint":"httparty@0.11.0 (RubyGems):GHSA-5pq7-52mg-hr42"},{"rule_id":"osv/GHSA-r5hc-9xx5-97rw","severity":"medium","message":"i18n@0.6.4 (RubyGems) is affected by GHSA-r5hc-9xx5-97rw","path":"Gemfile.lock","line":null,"fingerprint":"i18n@0.6.4 (RubyGems):GHSA-r5hc-9xx5-97rw"},{"rule_id":"osv/GHSA-mvxr-6m87-mv2q","severity":"medium","message":"mail@2.5.4 (RubyGems) is affected by GHSA-mvxr-6m87-mv2q","path":"Gemfile.lock","line":null,"fingerprint":"mail@2.5.4 (RubyGems):GHSA-mvxr-6m87-mv2q"},{"rule_id":"osv/GHSA-q86f-fmqf-qrf6","severity":"medium","message":"mail@2.5.4 (RubyGems) is affected by GHSA-q86f-fmqf-qrf6","path":"Gemfile.lock","line":null,"fingerprint":"mail@2.5.4 (RubyGems):GHSA-q86f-fmqf-qrf6"},{"rule_id":"osv/GHSA-286v-pcf5-25rc","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-286v-pcf5-25rc","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-286v-pcf5-25rc"},{"rule_id":"osv/GHSA-2qc6-mcvw-92cw","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-2qc6-mcvw-92cw","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-2qc6-mcvw-92cw"},{"rule_id":"osv/GHSA-353f-x4gh-cqq8","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-353f-x4gh-cqq8","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-353f-x4gh-cqq8"},{"rule_id":"osv/GHSA-4hm9-844j-jmxp","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-4hm9-844j-jmxp","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-4hm9-844j-jmxp"},{"rule_id":"osv/GHSA-5prr-v3j2-97mh","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-5prr-v3j2-97mh","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-5prr-v3j2-97mh"},{"rule_id":"osv/GHSA-5w6v-399v-w3cc","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-5w6v-399v-w3cc","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-5w6v-399v-w3cc"},{"rule_id":"osv/GHSA-62qp-3fxm-9wxf","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-62qp-3fxm-9wxf","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-62qp-3fxm-9wxf"},{"rule_id":"osv/GHSA-7rrm-v45f-jp64","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-7rrm-v45f-jp64","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-7rrm-v45f-jp64"},{"rule_id":"osv/GHSA-882p-jqgm-f45g","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-882p-jqgm-f45g","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-882p-jqgm-f45g"},{"rule_id":"osv/GHSA-fq42-c5rg-92c2","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-fq42-c5rg-92c2","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-fq42-c5rg-92c2"},{"rule_id":"osv/GHSA-jmhh-w7xp-wg39","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-jmhh-w7xp-wg39","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-jmhh-w7xp-wg39"},{"rule_id":"osv/GHSA-jxjr-5h69-qw3w","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-jxjr-5h69-qw3w","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-jxjr-5h69-qw3w"},{"rule_id":"osv/GHSA-pxvg-2qj5-37jq","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-pxvg-2qj5-37jq","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-pxvg-2qj5-37jq"},{"rule_id":"osv/GHSA-r95h-9x8f-r3f7","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-r95h-9x8f-r3f7","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-r95h-9x8f-r3f7"},{"rule_id":"osv/GHSA-v2fc-qm4h-8hqv","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-v2fc-qm4h-8hqv","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-v2fc-qm4h-8hqv"},{"rule_id":"osv/GHSA-vr8q-g5c7-m54m","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-vr8q-g5c7-m54m","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-vr8q-g5c7-m54m"},{"rule_id":"osv/GHSA-vvfq-8hwr-qm4m","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-vvfq-8hwr-qm4m","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-vvfq-8hwr-qm4m"},{"rule_id":"osv/GHSA-wfpw-mmfh-qq69","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-wfpw-mmfh-qq69","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-wfpw-mmfh-qq69"},{"rule_id":"osv/GHSA-wx95-c6cv-8532","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-wx95-c6cv-8532","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-wx95-c6cv-8532"},{"rule_id":"osv/GHSA-x7rv-cr6v-4vm4","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-x7rv-cr6v-4vm4","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-x7rv-cr6v-4vm4"},{"rule_id":"osv/GHSA-xc9x-jj77-9p9j","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-xc9x-jj77-9p9j","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-xc9x-jj77-9p9j"},{"rule_id":"osv/GHSA-xjqg-9jvg-fgx2","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-xjqg-9jvg-fgx2","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-xjqg-9jvg-fgx2"},{"rule_id":"osv/GHSA-xxx9-3xcr-gjj3","severity":"medium","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-xxx9-3xcr-gjj3","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-xxx9-3xcr-gjj3"},{"rule_id":"osv/GHSA-m27g-v28p-f9fx","severity":"medium","message":"omniauth@1.1.4 (RubyGems) is affected by GHSA-m27g-v28p-f9fx","path":"Gemfile.lock","line":null,"fingerprint":"omniauth@1.1.4 (RubyGems):GHSA-m27g-v28p-f9fx"},{"rule_id":"osv/GHSA-22f2-v57c-j9cx","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-22f2-v57c-j9cx","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-22f2-v57c-j9cx"},{"rule_id":"osv/GHSA-54rr-7fvw-6x8f","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-54rr-7fvw-6x8f","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-54rr-7fvw-6x8f"},{"rule_id":"osv/GHSA-5r2p-j47h-mhpg","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-5r2p-j47h-mhpg","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-5r2p-j47h-mhpg"},{"rule_id":"osv/GHSA-7g2v-jj9q-g3rg","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-7g2v-jj9q-g3rg","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-7g2v-jj9q-g3rg"},{"rule_id":"osv/GHSA-7mqq-6cf9-v2qp","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-7mqq-6cf9-v2qp","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-7mqq-6cf9-v2qp"},{"rule_id":"osv/GHSA-8cgq-6mh2-7j6v","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-8cgq-6mh2-7j6v","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-8cgq-6mh2-7j6v"},{"rule_id":"osv/GHSA-hrqr-hxpp-chr3","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-hrqr-hxpp-chr3","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-hrqr-hxpp-chr3"},{"rule_id":"osv/GHSA-q2ww-5357-x388","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-q2ww-5357-x388","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-q2ww-5357-x388"},{"rule_id":"osv/GHSA-q4qf-9j86-f5mh","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-q4qf-9j86-f5mh","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-q4qf-9j86-f5mh"},{"rule_id":"osv/GHSA-qv7j-4883-hwh7","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-qv7j-4883-hwh7","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-qv7j-4883-hwh7"},{"rule_id":"osv/GHSA-r657-rxjc-j557","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-r657-rxjc-j557","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-r657-rxjc-j557"},{"rule_id":"osv/GHSA-rgr4-9jh5-j4j6","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-rgr4-9jh5-j4j6","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-rgr4-9jh5-j4j6"},{"rule_id":"osv/GHSA-vgpv-f759-9wx3","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-vgpv-f759-9wx3","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-vgpv-f759-9wx3"},{"rule_id":"osv/GHSA-vpfw-47h7-xj4g","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-vpfw-47h7-xj4g","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-vpfw-47h7-xj4g"},{"rule_id":"osv/GHSA-whrj-4476-wvmp","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-whrj-4476-wvmp","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-whrj-4476-wvmp"},{"rule_id":"osv/GHSA-wvg4-6p58-3gh3","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-wvg4-6p58-3gh3","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-wvg4-6p58-3gh3"},{"rule_id":"osv/GHSA-x8cg-fq8g-mxfx","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-x8cg-fq8g-mxfx","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-x8cg-fq8g-mxfx"},{"rule_id":"osv/GHSA-xj5v-6v4g-jfw6","severity":"medium","message":"rack@1.5.2 (RubyGems) is affected by GHSA-xj5v-6v4g-jfw6","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-xj5v-6v4g-jfw6"},{"rule_id":"osv/GHSA-688c-3x49-6rqj","severity":"medium","message":"rack-protection@1.5.0 (RubyGems) is affected by GHSA-688c-3x49-6rqj","path":"Gemfile.lock","line":null,"fingerprint":"rack-protection@1.5.0 (RubyGems):GHSA-688c-3x49-6rqj"},{"rule_id":"osv/GHSA-v3rr-cph9-2g2q","severity":"medium","message":"rack-ssl@1.3.3 (RubyGems) is affected by GHSA-v3rr-cph9-2g2q","path":"Gemfile.lock","line":null,"fingerprint":"rack-ssl@1.3.3 (RubyGems):GHSA-v3rr-cph9-2g2q"},{"rule_id":"osv/GHSA-jppv-gw3r-w3q8","severity":"medium","message":"rake@10.1.0 (RubyGems) is affected by GHSA-jppv-gw3r-w3q8","path":"Gemfile.lock","line":null,"fingerprint":"rake@10.1.0 (RubyGems):GHSA-jppv-gw3r-w3q8"},{"rule_id":"osv/GHSA-6r34-94wq-jhrc","severity":"medium","message":"rdiscount@2.1.6 (RubyGems) is affected by GHSA-6r34-94wq-jhrc","path":"Gemfile.lock","line":null,"fingerprint":"rdiscount@2.1.6 (RubyGems):GHSA-6r34-94wq-jhrc"},{"rule_id":"osv/GHSA-hxx2-7vcw-mqr3","severity":"medium","message":"sinatra@1.4.3 (RubyGems) is affected by GHSA-hxx2-7vcw-mqr3","path":"Gemfile.lock","line":null,"fingerprint":"sinatra@1.4.3 (RubyGems):GHSA-hxx2-7vcw-mqr3"},{"rule_id":"osv/GHSA-33pp-3763-mrfp","severity":"medium","message":"sprockets@2.9.3 (RubyGems) is affected by GHSA-33pp-3763-mrfp","path":"Gemfile.lock","line":null,"fingerprint":"sprockets@2.9.3 (RubyGems):GHSA-33pp-3763-mrfp"},{"rule_id":"osv/GHSA-3xg8-cc8f-9wv2","severity":"low","message":"dalli@2.6.4 (RubyGems) is affected by GHSA-3xg8-cc8f-9wv2","path":"Gemfile.lock","line":null,"fingerprint":"dalli@2.6.4 (RubyGems):GHSA-3xg8-cc8f-9wv2"},{"rule_id":"osv/GHSA-3w22-6jfg-527w","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-3w22-6jfg-527w","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-3w22-6jfg-527w"},{"rule_id":"osv/GHSA-5v8h-3h3q-446p","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-5v8h-3h3q-446p","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-5v8h-3h3q-446p"},{"rule_id":"osv/GHSA-8678-w3jw-xfc2","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-8678-w3jw-xfc2","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-8678-w3jw-xfc2"},{"rule_id":"osv/GHSA-9cv2-cfxc-v4v2","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-9cv2-cfxc-v4v2","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-9cv2-cfxc-v4v2"},{"rule_id":"osv/GHSA-p67v-3w7g-wjg7","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-p67v-3w7g-wjg7","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-p67v-3w7g-wjg7"},{"rule_id":"osv/GHSA-phwj-rprq-35pp","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-phwj-rprq-35pp","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-phwj-rprq-35pp"},{"rule_id":"osv/GHSA-v995-44v6-5fqm","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-v995-44v6-5fqm","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-v995-44v6-5fqm"},{"rule_id":"osv/GHSA-wjv4-x9w8-wm3h","severity":"low","message":"nokogiri@1.6.0 (RubyGems) is affected by GHSA-wjv4-x9w8-wm3h","path":"Gemfile.lock","line":null,"fingerprint":"nokogiri@1.6.0 (RubyGems):GHSA-wjv4-x9w8-wm3h"},{"rule_id":"osv/GHSA-p8x9-v4hv-2w4g","severity":"low","message":"rack@1.5.2 (RubyGems) is affected by GHSA-p8x9-v4hv-2w4g","path":"Gemfile.lock","line":null,"fingerprint":"rack@1.5.2 (RubyGems):GHSA-p8x9-v4hv-2w4g"},{"rule_id":"osv/GHSA-mr3q-g2mv-mr4q","severity":"low","message":"sinatra@1.4.3 (RubyGems) is affected by GHSA-mr3q-g2mv-mr4q","path":"Gemfile.lock","line":null,"fingerprint":"sinatra@1.4.3 (RubyGems):GHSA-mr3q-g2mv-mr4q"}],"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.0,"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":156.0,"function_nloc":894.0,"mean_ccn":1.83,"p90_ccn":3.0,"complex_functions":0.0,"long_functions":0.0,"many_param_functions":0.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":1998.0,"duplicated_lines":104.0,"duplicated_share":0.0521,"files":51.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: app/models/comment.rb:34 and app/models/post.rb:100","ref":"app/models/comment.rb","url":"https://github.com/maccman/monocle/blob/793f00fad23d3f84cf945f84fceacc4796bf5bf7/app/models/comment.rb#L34","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: app/routes/static.rb:12 and lib/sinatra/static_cache.rb:3","ref":"app/routes/static.rb","url":"https://github.com/maccman/monocle/blob/793f00fad23d3f84cf945f84fceacc4796bf5bf7/app/routes/static.rb#L12","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: db/migrations/001_setup.rb:110 and db/migrations/001_setup.rb:124","ref":"db/migrations/001_setup.rb","url":"https://github.com/maccman/monocle/blob/793f00fad23d3f84cf945f84fceacc4796bf5bf7/db/migrations/001_setup.rb#L110","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: db/schema.rb:109 and db/schema.rb:123","ref":"db/schema.rb","url":"https://github.com/maccman/monocle/blob/793f00fad23d3f84cf945f84fceacc4796bf5bf7/db/schema.rb#L109","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: db/schema.sql:180 and db/schema.sql:217","ref":"db/schema.sql","url":"https://github.com/maccman/monocle/blob/793f00fad23d3f84cf945f84fceacc4796bf5bf7/db/schema.sql#L180","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: lib/rack/csrf.rb:9 and lib/rack/session_csrf.rb:3","ref":"lib/rack/csrf.rb","url":"https://github.com/maccman/monocle/blob/793f00fad23d3f84cf945f84fceacc4796bf5bf7/lib/rack/csrf.rb#L9","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":2546.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":3311.0,"test_ratio":0.0,"ci_files":0.0,"cochange_share":0.0,"cochange_commits":10.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"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":34.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","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":[]}