Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 2.3.1 · 2026-07-28 09:27 UTC

open-data-rescue / climate-data-rescue

Climate Data Rescue is an archival data rescue platform using Ruby on Rails.

JavaScript · Ruby · HTMLMIT★ 15 Sterne⑂ 10 Forksseit Feb. 2015Auf GitHub ansehen ↗
ArtNetzwerkdienstWeboberflächewie das ermittelt wird

open-data-rescue/climate-data-rescue erreicht einen Gesundheitsindex von 67 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Engineering Quality (76/100) ab, am schwächsten bei Community & Adoption (39/100). Zuletzt vor 5 Tagen aktualisiert. 2 Mitwirkende tragen den Großteil der jüngsten Arbeit.

67
gesamt / 100
Gut

Software-Gesundheitsindex

Metriken werden auf einer standardisierten Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr gewichtetes Mittel, kalibriert auf die Verteilung des öffentlichen Registers, sodass die Stufen Perzentilbedeutung tragen; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze Gefährdet von 34.

67
Außergewöhnlich93-100Die Spitzengruppe des Registers (≈ obere 5 %); erfüllt im Wesentlichen alle geprüften Kriterien
Exzellent80-92Durchgehend stark; geringfügige Lücken
Gut65-79Gesund; Lücken sind begrenzt und beherrschbar
Mittel50-64Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Schwach35-49Wesentliche Schwächen in mehreren Bereichen
Gefährdet20-34Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-19Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Der gewichtete Gesamtwert 61 wird auf der veröffentlichten Indexskala auf 67 kalibriert (Register-Kalibrierung 2026-08-02).

Eigentümerschaft

Open Data RescueOrganisation
5 Follower6 öffentliche Reposseit Juli 2019

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

75Gut · 21 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 5 Tagen
4.2/36Commit-Rhythmus — 6/52 Wochen mit Commits
13.1/18Commit-Volumen — 28 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year28
human_commit_share0,94
days_since_last_push5
active_weeks_last_year6
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 51 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 5 Tagen
19.8/27Release-Rhythmus — ein Release etwa alle 76,2 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count51
latest_release_tagv2.3.10
releases_from_tagsnein
days_since_latest_release5
mean_days_between_releases76,2
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

39Schwach · 17 % des Gesamtindex
Wie die Bewertung erfolgt
18.6/60Stars — 15 Stars
8/25Forks — 10 Forks
3.9/15Watcher — 6 Watcher
Verwendete Eingangsdaten
forks10
stars15
watchers6
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
readme_badges
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
readme_badge_services
has_pull_request_templatenein

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

59Mittel · 23 % des Gesamtindex
Wie die Bewertung erfolgt
25.2/54Bus-Faktor — 2 Beitragende decken die Hälfte aller Commits ab
12.8/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 43 % der Commits
13.5/13.5Breite der Beitragenden — 15 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 7 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor2
contributors_sampled15
top_contributor_share0,43
Wie die Bewertung erfolgt
38.1/42Issue-Lösungsquote — 91 % der Issues geschlossen
14/30PR-Annahme — 359/767 entschiedene PRs gemergt
0/13Newcomer PR acceptance — kein PR eines Erstbeitragenden in 30 Tagen entschieden
0/15OpenSSF Scorecard: Code-Review — Found 1/13 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs359
open_issues11
closed_issues106
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0,906
closed_unmerged_prs408
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): newcomer_pr_acceptance. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
5.6/25Reichweite des Inhabers — 5 Follower von open-data-rescue
18.2/25Kontohistorie — 6 öffentliche Repos, Kontoalter ca. 7 Jahre
Verwendete Eingangsdaten
followers5
owner_typeOrganization
is_verified
owner_loginopen-data-rescue
public_repos6
account_age_days2.572

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

76Gut · 19 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 2 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .rubocop.yml
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
12/20OpenSSF Scorecard: CI-Tests — 11 out of 17 merged PRs checked by a CI test -- score normalized to 6
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://draw.geog.mcgill.ca
10/10Repository-Beschreibung
10/10Topics — 9 Topics
10/10Wiki
Verwendete Eingangsdaten
topicstranscription, data-rescue, archives, digitization, citizen-science, hacktoberfest, climate, community, science
has_wikija
homepagehttps://draw.geog.mcgill.ca
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

53Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — keine Daten
1.5/2.5CI-Tests — 11 out of 17 merged PRs checked by a CI test -- score normalized to 6
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 1/13 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 7 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
3/5SAST — SAST tool is not run on all commits -- score normalized to 6
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 113 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,8
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
4.3/35Direkte Abhängigkeiten ohne bekannte Advisories — 5 betroffen: underscore 1.8.3 (critical 9.8), axios 1.13.6 (high 8.7), lodash 4.17.23 (high 8.1), +2 weitere
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
20/40Keine offenen Advisories — 5 Paket(e) mit Advisory seit über 90 Tagen unbehandelt; ältestes vor 1.908 Tagen veröffentlicht
Verwendete Eingangsdaten
sourceosv
advisories115
affected_packages29
assessed_packages372
unassessed_packages0
affected_by_severitycritical 3, high 16, moderate 8, low 2
direct_affected_packages5
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories. Die verbleibenden Gewichte wurden renormalisiert. 372 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Trägt ein bewusst kleines Gewicht (4 %): Agenten-Tooling ist ein echtes Pflegesignal, doch ein Repository ohne jedes Signal kann weiterhin 100/100 erreichen.

44Schwach · 4 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
28.4/40Lesbare Commit-Historie — 50 von 94 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,532
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .rubocop.yml
0/11Statische Typprüfung
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 100
8/8Automatisierte Wartung — 6 der letzten 100 Commits sind automatisierte Abhängigkeits-Updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesGemfile.lock, yarn.lock
has_dockerfileja
typed_languagenein
bootstrap_files
has_devcontainernein
has_linter_configja
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0,06
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — JavaScript ohne Typprüfungs-Konfiguration
54.6/55Handhabbare Dateigrößen — 2/292 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageJavaScript
largest_source_bytes167.184
source_files_sampled292
oversized_source_files2

Eckdaten

15GitHub-Sterne
15Mitwirkende
28Commits, letzte 12 Monate
5Tage seit letztem Push
51Releases
2Bus-Faktor
11offene Issues
npm, RubyGemsPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 10 ⇿
0Sterne
10Forks
45Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

02468101012016-032020-072024-11
Major 1Minor 4Patch 40

Jeder Punkt umfasst 8 Tage.

OpenSSF Scorecard 5.8 / 10
5.8Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-28 09:27 UTC

10Binary-Artifactsno binaries found in the repo
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
6CI-Tests11 out of 17 merged PRs checked by a CI test -- score normalized to 6
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 1/13 approved changesets -- score normalized to 0
10Contributorsproject has 7 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
6SASTSAST tool is not run on all commits -- score normalized to 6
10Security-Policysecurity policy file detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities113 existing vulnerabilities detected
Direkte Abhängigkeiten 75
RegistryPaketVersionsvorgabeManifest
RubyGemsrails~> 7.0.4Gemfile
RubyGemsmysql2Gemfile
RubyGemspaper_trailGemfile
RubyGemsranked-modelGemfile
RubyGemsuglifierGemfile
RubyGemslog4rGemfile
RubyGemsdeviseGemfile
RubyGemspunditGemfile
RubyGemsslim-railsGemfile
RubyGemssimple_formGemfile
RubyGemswill_paginateGemfile
RubyGemskt-paperclipGemfile
RubyGemswith_advisory_lockGemfile
RubyGemsjbuilderGemfile
RubyGemsjsonapi-railsGemfile
RubyGemsjsonapi-rspecGemfile
RubyGemsrouting-filterGemfile
RubyGemshttp_accept_languageGemfile
RubyGemsrails-i18n~> 7.0.0Gemfile
RubyGemsi18n-active_recordGemfile
RubyGemsrails-observersGemfile
RubyGemsglobalizeGemfile
RubyGemsglobalize-accessorsGemfile
RubyGemssidekiqGemfile
RubyGemssidekiq-schedulerGemfile
RubyGemsnewrelic_rpmGemfile
RubyGemspuma~> 6.3.1Gemfile
RubyGemsrecaptchaGemfile
RubyGemsacts-as-taggable-on~> 9.0Gemfile
RubyGemscssbundling-rails~> 1.1Gemfile
RubyGemstzinfo-dataGemfile
RubyGemsvite_rails3.0.15Gemfile
RubyGemsvite_ruby3.3.4Gemfile
RubyGemsvite_plugin_legacyGemfile
RubyGemshaml-railsGemfile
npm@intlify/unplugin-vue-i18n^0.11.0package.json
npm@popperjs/core^2.11.7package.json
npm@rollup/plugin-inject^5.0.3package.json
npm@vitejs/plugin-vue^4.2.1package.json
npm@vue/compat^3.2.47package.json
npmaxios^1.2.0package.json
npmbackbone^1.5.0package.json
npmbackbone-forms^0.14.1package.json
npmbackbone-model-file-upload^1.0.2package.json
npmbackbone.marionette2.4.7package.json
npmbackbone.wreqr1.3.6package.json
npmblueimp-file-upload^10.32.0package.json
npmbootstrap4.6.1package.json
npmbootstrap-notify^3.1.3package.json
npmbootstrap-switch^3.4.0package.json
npmbootstrap-vue^2.23.1package.json
npmbowser^2.11.0package.json
npmcaniuse-lite^1.0.30001171package.json
npmcommon-tags^1.8.0package.json
npmjquery^3.6.4package.json
npmjquery-ui-dist^1.13.2package.json
npmjquery-ujs^1.2.3package.json
npmjquery.kinetic^2.2.4package.json
npmjsonapi-vuex5.13.1package.json
npmlodash^4.17.21package.json
npmlodash.merge^4.6.2package.json
npmluxon^3.1.0package.json
npmmagnify2.1.0package.json
npmmoment^2.29.2package.json
npmpopper.js^1.16.1package.json
npmsass^1.62.1package.json
npmselect2^4.1.0-rc.0package.json
npmselect2-bootstrap-theme^0.1.0-beta.10package.json
npmselect2-bootstrap4-theme^1.0.0package.json
npmtempusdominus-bootstrap-4^5.39.2package.json
npmtrumbowyg^2.27.3package.json
npmunderscore^1.13.8package.json
npmvue^3.2.45package.json
npmvue-router^4.1.6package.json
npmvuex^4.1.0package.json
Alle Abhängigkeiten 372

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 81 direkte und 291 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
npm@intlify/unplugin-vue-i18n0.11.0direkt
npm@popperjs/core2.11.8direkt
npm@rollup/plugin-inject5.0.5direkt
npm@vitejs/plugin-vue4.6.2direkt
npm@vue/compat3.5.30direkt
npmaxios1.13.6direkt
npmbackbone1.1.2direkt
npmbackbone1.3.2direkt
npmbackbone1.3.3direkt
npmbackbone1.6.1direkt
npmbackbone-forms0.14.1direkt
npmbackbone-model-file-upload1.0.2direkt
npmbackbone.marionette2.4.7direkt
npmbackbone.wreqr1.3.6direkt
npmbackbone.wreqr1.4.0direkt
npmblueimp-file-upload10.32.0direkt
npmbootstrap4.6.1direkt
npmbootstrap4.6.2direkt
npmbootstrap-notify3.1.3direkt
npmbootstrap-switch3.4.0direkt
npmbootstrap-vue2.23.1direkt
npmbowser2.14.1direkt
npmcaniuse-lite1.0.30001777direkt
npmcommon-tags1.8.2direkt
npmjquery3.7.1direkt
npmjquery4.0.0direkt
npmjquery-ui-dist1.13.3direkt
npmjquery-ujs1.2.3direkt
npmjquery.kinetic2.2.4direkt
npmjsonapi-vuex5.13.1direkt
npmlodash4.17.23direkt
npmlodash.merge4.6.2direkt
npmluxon3.7.2direkt
npmmagnify2.1.0direkt
npmmoment2.30.1direkt
npmpopper.js1.16.1direkt
npmsass1.97.3direkt
npmselect24.1.0-rc.0direkt
npmselect2-bootstrap-theme0.1.0-beta.10direkt
npmselect2-bootstrap4-theme1.0.0direkt
npmtempusdominus-bootstrap-45.39.2direkt
npmtrumbowyg2.31.0direkt
npmunderscore1.13.8direkt
npmunderscore1.8.3direkt
npmvue3.5.30direkt
npmvue-router4.6.4direkt
npmvuex4.1.0direkt
RubyGemsacts-as-taggable-on9.0.1direkt
RubyGemscssbundling-rails1.4.3direkt
RubyGemsdevise4.9.4direkt
RubyGemsglobalize7.0.0direkt
RubyGemsglobalize-accessors0.3.0direkt
RubyGemshaml-rails3.0.0direkt
RubyGemshttp_accept_language2.1.1direkt
RubyGemsi18n-active_record1.4.0direkt
RubyGemsjbuilder2.14.1direkt
RubyGemsjsonapi-rails0.4.1direkt
RubyGemsjsonapi-rspec0.0.11direkt
RubyGemskt-paperclip7.2.2direkt
RubyGemslog4r1.1.10direkt
RubyGemsmysql20.5.7direkt
RubyGemsnewrelic_rpm9.23.0direkt
RubyGemspaper_trail16.0.0direkt
RubyGemspuma6.3.1direkt
RubyGemspundit2.5.2direkt
RubyGemsrails7.0.10direkt
RubyGemsrails-i18n7.0.10direkt
RubyGemsrails-observers0.1.5direkt
RubyGemsranked-model0.4.11direkt
RubyGemsrecaptcha5.21.1direkt
RubyGemsrouting-filter0.7.0direkt
RubyGemssidekiq7.3.9direkt
RubyGemssidekiq-scheduler6.0.1direkt
RubyGemssimple_form5.4.0direkt
RubyGemsslim-rails3.7.0direkt
RubyGemsuglifier4.2.1direkt
RubyGemsvite_plugin_legacy3.0.2direkt
RubyGemsvite_rails3.0.15direkt
RubyGemsvite_ruby3.3.4direkt
RubyGemswill_paginate4.0.1direkt
RubyGemswith_advisory_lock5.3.0direkt
npm@babel/helper-string-parser7.27.1indirekt
npm@babel/helper-validator-identifier7.28.5indirekt
npm@babel/parser7.29.0indirekt
npm@babel/types7.29.0indirekt
npm@esbuild/android-arm0.18.20indirekt
npm@esbuild/android-arm640.18.20indirekt
npm@esbuild/android-x640.18.20indirekt
npm@esbuild/darwin-arm640.18.20indirekt
npm@esbuild/darwin-x640.18.20indirekt
npm@esbuild/freebsd-arm640.18.20indirekt
npm@esbuild/freebsd-x640.18.20indirekt
npm@esbuild/linux-arm0.18.20indirekt
npm@esbuild/linux-arm640.18.20indirekt
npm@esbuild/linux-ia320.18.20indirekt
npm@esbuild/linux-loong640.18.20indirekt
npm@esbuild/linux-mips64el0.18.20indirekt
npm@esbuild/linux-ppc640.18.20indirekt
npm@esbuild/linux-riscv640.18.20indirekt
npm@esbuild/linux-s390x0.18.20indirekt
npm@esbuild/linux-x640.18.20indirekt
npm@esbuild/netbsd-x640.18.20indirekt
npm@esbuild/openbsd-x640.18.20indirekt
npm@esbuild/sunos-x640.18.20indirekt
npm@esbuild/win32-arm640.18.20indirekt
npm@esbuild/win32-ia320.18.20indirekt
npm@esbuild/win32-x640.18.20indirekt
npm@intlify/bundle-utils6.0.1indirekt
npm@intlify/message-compiler9.3.0-beta.17indirekt
npm@intlify/shared9.3.0-beta.17indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@nodelib/fs.scandir2.1.5indirekt
npm@nodelib/fs.stat2.0.5indirekt
npm@nodelib/fs.walk1.2.8indirekt
npm@nuxt/opencollective0.3.3indirekt
npm@parcel/watcher2.5.6indirekt
npm@parcel/watcher-android-arm642.5.6indirekt
npm@parcel/watcher-darwin-arm642.5.6indirekt
npm@parcel/watcher-darwin-x642.5.6indirekt
npm@parcel/watcher-freebsd-x642.5.6indirekt
npm@parcel/watcher-linux-arm-glibc2.5.6indirekt
npm@parcel/watcher-linux-arm-musl2.5.6indirekt
npm@parcel/watcher-linux-arm64-glibc2.5.6indirekt
npm@parcel/watcher-linux-arm64-musl2.5.6indirekt
npm@parcel/watcher-linux-x64-glibc2.5.6indirekt
npm@parcel/watcher-linux-x64-musl2.5.6indirekt
npm@parcel/watcher-win32-arm642.5.6indirekt
npm@parcel/watcher-win32-ia322.5.6indirekt
npm@parcel/watcher-win32-x642.5.6indirekt
npm@rollup/pluginutils5.3.0indirekt
npm@types/estree1.0.8indirekt
npm@vue/compiler-core3.5.30indirekt
npm@vue/compiler-dom3.5.30indirekt
npm@vue/compiler-sfc3.5.30indirekt
npm@vue/compiler-ssr3.5.30indirekt
npm@vue/devtools-api6.6.4indirekt
npm@vue/reactivity3.5.30indirekt
npm@vue/runtime-core3.5.30indirekt
npm@vue/runtime-dom3.5.30indirekt
npm@vue/server-renderer3.5.30indirekt
npm@vue/shared3.5.30indirekt
npmacorn7.4.1indirekt
npmacorn8.16.0indirekt
npmacorn-jsx5.3.2indirekt
npmansi-styles4.3.0indirekt
npmargparse2.0.1indirekt
npmasynckit0.4.0indirekt
npmbackbone.babysitter0.1.12indirekt
npmblueimp-canvas-to-blob3.29.0indirekt
npmblueimp-load-image5.16.0indirekt
npmblueimp-tmpl3.20.0indirekt
npmbraces3.0.3indirekt
npmcall-bind-apply-helpers1.0.2indirekt
npmchalk4.1.2indirekt
npmchokidar4.0.3indirekt
npmcolor-convert2.0.1indirekt
npmcolor-name1.1.4indirekt
npmcombined-stream1.0.8indirekt
npmconfbox0.1.8indirekt
npmconsola2.15.3indirekt
npmcsstype3.2.3indirekt
npmdebug4.4.3indirekt
npmdelayed-stream1.0.0indirekt
npmdetect-libc2.1.2indirekt
npmdunder-proto1.0.1indirekt
npmentities7.0.1indirekt
npmes-define-property1.0.1indirekt
npmes-errors1.3.0indirekt
npmes-object-atoms1.1.1indirekt
npmes-set-tostringtag2.1.0indirekt
npmesbuild0.18.20indirekt
npmescodegen2.1.0indirekt
npmeslint-utils2.1.0indirekt
npmeslint-visitor-keys1.3.0indirekt
npmespree6.2.1indirekt
npmesprima4.0.1indirekt
npmestraverse5.3.0indirekt
npmestree-walker2.0.2indirekt
npmesutils2.0.3indirekt
npmfast-glob3.3.3indirekt
npmfastq1.20.1indirekt
npmfill-range7.1.1indirekt
npmfollow-redirects1.15.11indirekt
npmform-data4.0.5indirekt
npmfsevents2.3.3indirekt
npmfunction-bind1.1.2indirekt
npmget-intrinsic1.3.0indirekt
npmget-proto1.0.1indirekt
npmglob-parent5.1.2indirekt
npmgopd1.2.0indirekt
npmhas-flag4.0.0indirekt
npmhas-symbols1.1.0indirekt
npmhas-tostringtag1.0.2indirekt
npmhasown2.0.2indirekt
npmimmutable5.1.5indirekt
npmis-extglob2.1.1indirekt
npmis-glob4.0.3indirekt
npmis-number7.0.0indirekt
npmjs-yaml4.1.1indirekt
npmjson52.2.3indirekt
npmjsonc-eslint-parser1.4.1indirekt
npmjsonpath-plus7.2.0indirekt
npmmagic-string0.30.21indirekt
npmmath-intrinsics1.1.0indirekt
npmmerge21.4.1indirekt
npmmicromatch4.0.8indirekt
npmmime-db1.52.0indirekt
npmmime-types2.1.35indirekt
npmmlly1.8.1indirekt
npmmoment-timezone0.5.48indirekt
npmms2.1.3indirekt
npmnanoid3.3.11indirekt
npmnode-addon-api7.1.1indirekt
npmnode-fetch2.7.0indirekt
npmpathe1.1.2indirekt
npmpathe2.0.3indirekt
npmpicocolors1.1.1indirekt
npmpicomatch2.3.1indirekt
npmpicomatch4.0.3indirekt
npmpkg-types1.3.1indirekt
npmportal-vue2.1.7indirekt
npmpostcss8.5.8indirekt
npmproxy-from-env1.1.0indirekt
npmqueue-microtask1.2.3indirekt
npmreaddirp4.1.2indirekt
npmreusify1.1.0indirekt
npmrollup3.30.0indirekt
npmrun-parallel1.2.0indirekt
npmsemver6.3.1indirekt
npmsource-map0.6.1indirekt
npmsource-map-js1.2.1indirekt
npmsupports-color7.2.0indirekt
npmto-regex-range5.0.1indirekt
npmtr460.0.3indirekt
npmufo1.6.3indirekt
npmunplugin1.16.1indirekt
npmvite4.5.14indirekt
npmvite-plugin-full-reload1.2.0indirekt
npmvite-plugin-ruby3.2.2indirekt
npmvue-functional-data-merge3.1.0indirekt
npmwebidl-conversions3.0.1indirekt
npmwebpack-virtual-modules0.6.2indirekt
npmwhatwg-url5.0.0indirekt
npmyaml1.10.2indirekt
npmyaml-eslint-parser0.3.2indirekt
RubyGemsactioncable7.0.10indirekt
RubyGemsactionmailbox7.0.10indirekt
RubyGemsactionmailer7.0.10indirekt
RubyGemsactionpack7.0.10indirekt
RubyGemsactiontext7.0.10indirekt
RubyGemsactionview7.0.10indirekt
RubyGemsactivejob7.0.10indirekt
RubyGemsactivemodel7.0.10indirekt
RubyGemsactiverecord7.0.10indirekt
RubyGemsactivestorage7.0.10indirekt
RubyGemsactivesupport7.0.10indirekt
RubyGemsast2.4.3indirekt
RubyGemsbase640.3.0indirekt
RubyGemsbcrypt3.1.20indirekt
RubyGemsbenchmark0.5.0indirekt
RubyGemsbetter_errors2.10.1indirekt
RubyGemsbigdecimal3.3.1indirekt
RubyGemsbindex0.8.1indirekt
RubyGemsbinding_of_caller1.0.1indirekt
RubyGemsbrakeman7.1.1indirekt
RubyGemsbuilder3.3.0indirekt
RubyGemsbyebug12.0.0indirekt
RubyGemsclimate_control1.2.0indirekt
RubyGemscoderay1.1.3indirekt
RubyGemsconcurrent-ruby1.3.4indirekt
RubyGemsconnection_pool2.5.5indirekt
RubyGemscrass1.0.6indirekt
RubyGemsdatabase_cleaner2.1.0indirekt
RubyGemsdatabase_cleaner-active_record2.2.2indirekt
RubyGemsdatabase_cleaner-core2.0.1indirekt
RubyGemsdate3.5.0indirekt
RubyGemsdebug_inspector1.2.0indirekt
RubyGemsdiff-lcs1.6.2indirekt
RubyGemsdocile1.4.1indirekt
RubyGemsdrb2.2.3indirekt
RubyGemsdry-cli1.3.0indirekt
RubyGemserubi1.13.1indirekt
RubyGemset-orbi1.4.0indirekt
RubyGemsexecjs2.10.0indirekt
RubyGemsfactory_bot6.5.6indirekt
RubyGemsfactory_bot_rails6.5.1indirekt
RubyGemsfaker3.5.2indirekt
RubyGemsffi1.17.2indirekt
RubyGemsfugit1.12.1indirekt
RubyGemsfuubar2.5.1indirekt
RubyGemsglobalid1.3.0indirekt
RubyGemshaml6.4.0indirekt
RubyGemsi18n1.14.7indirekt
RubyGemsjson2.16.0indirekt
RubyGemsjsonapi-deserializable0.2.0indirekt
RubyGemsjsonapi-parser0.1.1indirekt
RubyGemsjsonapi-rb0.5.0indirekt
RubyGemsjsonapi-renderer0.2.2indirekt
RubyGemsjsonapi-serializable0.3.1indirekt
RubyGemslanguage_server-protocol3.17.0.5indirekt
RubyGemslint_roller1.1.0indirekt
RubyGemslisten3.9.0indirekt
RubyGemslogger1.7.0indirekt
RubyGemsloofah2.24.1indirekt
RubyGemsmail2.9.0indirekt
RubyGemsmarcel1.0.4indirekt
RubyGemsmethod_source1.1.0indirekt
RubyGemsmime-types3.7.0indirekt
RubyGemsmime-types-data3.2025.0924indirekt
RubyGemsmini_mime1.1.5indirekt
RubyGemsminitest5.26.2indirekt
RubyGemsmutex_m0.3.0indirekt
RubyGemsnet-imap0.5.12indirekt
RubyGemsnet-pop0.1.2indirekt
RubyGemsnet-protocol0.2.2indirekt
RubyGemsnet-smtp0.5.1indirekt
RubyGemsnio4r2.7.5indirekt
RubyGemsnokogiri1.18.10indirekt
RubyGemsorm_adapter0.5.0indirekt
RubyGemsparallel1.27.0indirekt
RubyGemsparser3.3.10.0indirekt
RubyGemsprism1.6.0indirekt
RubyGemspry0.15.2indirekt
RubyGemsraabro1.4.0indirekt
RubyGemsracc1.8.1indirekt
RubyGemsrack2.2.21indirekt
RubyGemsrack-mini-profiler4.0.1indirekt
RubyGemsrack-proxy0.7.7indirekt
RubyGemsrack-test2.2.0indirekt
RubyGemsrails-dom-testing2.3.0indirekt
RubyGemsrails-html-sanitizer1.6.2indirekt
RubyGemsrailties7.0.10indirekt
RubyGemsrainbow3.1.1indirekt
RubyGemsrake13.3.1indirekt
RubyGemsrb-fsevent0.11.2indirekt
RubyGemsrb-inotify0.11.1indirekt
RubyGemsrb-readline0.5.5indirekt
RubyGemsredis-client0.26.1indirekt
RubyGemsregexp_parser2.11.3indirekt
RubyGemsrequest_store1.7.0indirekt
RubyGemsresponders3.2.0indirekt
RubyGemsrouge4.6.1indirekt
RubyGemsrspec-core3.13.6indirekt
RubyGemsrspec-expectations3.13.5indirekt
RubyGemsrspec-mocks3.13.7indirekt
RubyGemsrspec-rails7.1.1indirekt
RubyGemsrspec-support3.13.6indirekt
RubyGemsrubocop1.81.7indirekt
RubyGemsrubocop-ast1.48.0indirekt
RubyGemsrubocop-rspec3.8.0indirekt
RubyGemsruby-progressbar1.13.0indirekt
RubyGemsrufus-scheduler3.9.2indirekt
RubyGemssecurerandom0.4.1indirekt
RubyGemsshoulda-callback-matchers1.1.4indirekt
RubyGemsshoulda-matchers6.5.0indirekt
RubyGemssimplecov0.22.0indirekt
RubyGemssimplecov-html0.13.2indirekt
RubyGemssimplecov_json_formatter0.1.4indirekt
RubyGemsslim5.2.1indirekt
RubyGemstemple0.10.4indirekt
RubyGemsterrapin1.1.1indirekt
RubyGemsthor1.4.0indirekt
RubyGemstilt2.6.1indirekt
RubyGemstimeout0.4.4indirekt
RubyGemstzinfo2.0.6indirekt
RubyGemsunicode-display_width3.2.0indirekt
RubyGemsunicode-emoji4.1.0indirekt
RubyGemswarden1.2.9indirekt
RubyGemsweb-console4.2.1indirekt
RubyGemswebsocket-driver0.8.0indirekt
RubyGemswebsocket-extensions0.1.5indirekt
RubyGemszeitwerk2.6.18indirekt
Abhängigkeits-Advisories 29

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 372 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 29 tragen bekannte Advisories, davon 5 direkte.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
underscore1.8.3direktkritisch21.13.8
activestorage7.0.10indirektkritisch68.1.2.1
jsonpath-plus7.2.0indirektkritisch210.3.0
axios1.13.6direkthoch281.18.0
lodash4.17.23direkthoch24.18.0
puma6.3.1direkthoch48.0.2
activesupport7.0.10indirekthoch38.1.2.1
concurrent-ruby1.3.4indirekthoch31.3.7
form-data4.0.5indirekthoch14.0.6
immutable5.1.5indirekthoch25.1.8
js-yaml4.1.1indirekthoch24.3.0
json2.16.0indirekthoch22.19.9
nokogiri1.18.10indirekthoch111.19.4
picomatch2.3.1indirekthoch24.0.4
picomatch4.0.3indirekthoch24.0.4
postcss8.5.8indirekthoch38.5.18
rack2.2.21indirekthoch113.2.6
vite4.5.14indirekthoch78.0.16
websocket-driver0.8.0indirekthoch40.8.2
devise4.9.4direktmittel25.0.4
activerecord7.0.10indirektmittel18.0.2.1
bcrypt3.1.20indirektmittel13.1.22
esbuild0.18.20indirektmittel10.25.0
follow-redirects1.15.11indirektmittel11.16.0
loofah2.24.1indirektmittel12.25.2
net-imap0.5.12indirektmittel80.6.4.1
yaml1.10.2indirektmittel12.8.3
actionview7.0.10indirektniedrig18.1.2.1
rails-html-sanitizer1.6.2indirektniedrig11.7.1

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "transcription",
        "data-rescue",
        "archives",
        "digitization",
        "citizen-science",
        "hacktoberfest",
        "climate",
        "community",
        "science"
      ],
      "is_fork": false,
      "size_kb": 68846,
      "has_wiki": true,
      "homepage": "https://draw.geog.mcgill.ca",
      "languages": {
        "Vue": 19219,
        "HTML": 178664,
        "Ruby": 287014,
        "SCSS": 25424,
        "Slim": 51777,
        "Shell": 2689,
        "JavaScript": 288265,
        "TypeScript": 1264
      },
      "pushed_at": "2026-07-22T19:01:29Z",
      "created_at": "2015-02-17T21:28:55Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-22T18:56:54Z",
      "description": "Climate Data Rescue is an archival data rescue platform using Ruby on Rails.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "production",
      "license_spdx_raw": "MIT",
      "primary_language": "JavaScript",
      "significant_languages": [
        "JavaScript",
        "Ruby",
        "HTML"
      ]
    },
    "owner": {
      "blog": "https://citsci.geog.mcgill.ca/",
      "name": "Open Data Rescue",
      "type": "Organization",
      "login": "open-data-rescue",
      "company": null,
      "location": "Montreal, Quebec, Canada",
      "followers": 5,
      "avatar_url": "https://avatars.githubusercontent.com/u/52838926?v=4",
      "created_at": "2019-07-12T20:27:03Z",
      "is_verified": null,
      "public_repos": 6,
      "account_age_days": 2572
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.3.10",
          "kind": "patch",
          "published_at": "2026-07-22T19:01:30Z"
        },
        {
          "tag": "v2.3.9",
          "kind": "patch",
          "published_at": "2026-07-21T19:31:53Z"
        },
        {
          "tag": "v2.3.8",
          "kind": "patch",
          "published_at": "2026-07-17T14:14:16Z"
        },
        {
          "tag": "v2.3.7",
          "kind": "patch",
          "published_at": "2025-09-11T14:25:01Z"
        },
        {
          "tag": "v2.3.6",
          "kind": "patch",
          "published_at": "2024-12-20T15:07:22Z"
        },
        {
          "tag": "v2.3.5",
          "kind": "patch",
          "published_at": "2024-12-19T23:21:11Z"
        },
        {
          "tag": "v2.3.4",
          "kind": "patch",
          "published_at": "2024-09-18T14:35:10Z"
        },
        {
          "tag": "v2.3.3",
          "kind": "patch",
          "published_at": "2024-09-10T13:38:12Z"
        },
        {
          "tag": "v2.3.2",
          "kind": "patch",
          "published_at": "2024-09-05T16:17:52Z"
        },
        {
          "tag": "v2.3.1",
          "kind": "patch",
          "published_at": "2024-09-04T19:14:53Z"
        },
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2024-09-03T18:58:31Z"
        },
        {
          "tag": "v2.2.9",
          "kind": "patch",
          "published_at": "2024-06-18T15:04:32Z"
        },
        {
          "tag": "v2.2.8",
          "kind": "patch",
          "published_at": "2024-05-11T16:00:16Z"
        },
        {
          "tag": "v2.2.7",
          "kind": "patch",
          "published_at": "2024-01-23T21:28:40Z"
        },
        {
          "tag": "v2.2.6",
          "kind": "patch",
          "published_at": "2023-11-27T12:45:47Z"
        },
        {
          "tag": "v2.2.5",
          "kind": "patch",
          "published_at": "2023-06-13T12:35:00Z"
        },
        {
          "tag": "v2.2.4",
          "kind": "patch",
          "published_at": "2023-05-24T18:51:39Z"
        },
        {
          "tag": "v2.2.3",
          "kind": "patch",
          "published_at": "2023-04-27T19:42:58Z"
        },
        {
          "tag": "v2.2.2",
          "kind": "patch",
          "published_at": "2023-04-20T19:20:16Z"
        },
        {
          "tag": "v2.2.1",
          "kind": "patch",
          "published_at": "2023-04-19T02:26:15Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2023-04-19T01:16:13Z"
        },
        {
          "tag": "v2.1.1",
          "kind": "patch",
          "published_at": "2023-03-19T15:24:40Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2023-03-16T01:31:31Z"
        },
        {
          "tag": "v2.0.10",
          "kind": "patch",
          "published_at": "2023-03-15T13:49:58Z"
        },
        {
          "tag": "v2.0.9",
          "kind": "patch",
          "published_at": "2023-03-05T17:22:52Z"
        },
        {
          "tag": "v2.0.8",
          "kind": "patch",
          "published_at": "2023-03-05T15:12:07Z"
        },
        {
          "tag": "v2.0.7",
          "kind": "patch",
          "published_at": "2023-02-28T20:13:07Z"
        },
        {
          "tag": "v2.0.6",
          "kind": "patch",
          "published_at": "2023-02-18T21:09:00Z"
        },
        {
          "tag": "v2.0.5",
          "kind": "patch",
          "published_at": "2023-01-03T23:37:17Z"
        },
        {
          "tag": "v2.0.4",
          "kind": "patch",
          "published_at": "2022-12-31T05:37:44Z"
        },
        {
          "tag": "v2.0.3",
          "kind": "patch",
          "published_at": "2022-12-19T17:06:20Z"
        },
        {
          "tag": "v2.0.2",
          "kind": "patch",
          "published_at": "2022-11-30T19:52:54Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2022-11-29T16:51:36Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2022-11-22T22:26:39Z"
        },
        {
          "tag": "v1.3.14",
          "kind": "patch",
          "published_at": "2022-11-16T22:14:54Z"
        },
        {
          "tag": "v1.3.13",
          "kind": "patch",
          "published_at": "2022-11-12T15:38:54Z"
        },
        {
          "tag": "v1.3.12",
          "kind": "patch",
          "published_at": "2022-11-07T17:05:53Z"
        },
        {
          "tag": "v1.3.11",
          "kind": "patch",
          "published_at": "2022-11-07T13:22:49Z"
        },
        {
          "tag": "v1.3.10",
          "kind": "patch",
          "published_at": "2022-10-19T13:27:57Z"
        },
        {
          "tag": "v1.3.9",
          "kind": "patch",
          "published_at": "2022-10-19T02:46:14Z"
        },
        {
          "tag": "v1.3.8",
          "kind": "patch",
          "published_at": "2022-10-18T14:17:12Z"
        },
        {
          "tag": "v1.3.7",
          "kind": "patch",
          "published_at": "2022-10-12T14:16:00Z"
        },
        {
          "tag": "v1.3.6",
          "kind": "patch",
          "published_at": "2022-09-23T16:37:44Z"
        },
        {
          "tag": "v1.3.5",
          "kind": "patch",
          "published_at": "2022-09-21T19:07:45Z"
        },
        {
          "tag": "v1.3.4",
          "kind": "patch",
          "published_at": "2022-09-21T14:41:40Z"
        },
        {
          "tag": "v1.3.3",
          "kind": "patch",
          "published_at": "2022-09-20T16:54:30Z"
        },
        {
          "tag": "v1.3.2",
          "kind": "patch",
          "published_at": "2022-09-20T14:58:48Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2022-09-14T15:58:57Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2022-09-13T15:36:32Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2021-01-05T04:48:42Z"
        },
        {
          "tag": "v1.0.3",
          "kind": "patch",
          "published_at": "2019-03-11T18:42:22Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "ab19697b457377fff0914b90b53bf1667c70a01b",
          "body": "fixes for field add/remove to field group",
          "is_bot": false,
          "headline": "Merge pull request #885 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-22T18:55:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf21ec4510c4e6eaf51df162ac3684333e6a6981",
          "body": "…ove-fields\n\nfixes for the add/remove fields to field group",
          "is_bot": false,
          "headline": "Merge pull request #884 from open-data-rescue/fix-field-group-add-rem…",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-22T18:42:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a5c10d7cf0c53b42fe0d3cadf9f7d304d177d7a",
          "body": null,
          "is_bot": false,
          "headline": "fixes for the add/remove fields to field group",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2026-07-22T18:41:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56ec00d8c81352bcfbe6666a6f051df8394daf4e",
          "body": "fixes for image upload",
          "is_bot": false,
          "headline": "Merge pull request #883 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T19:25:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d5edb703a80dbfe72322e17d392fd8679c0b43e",
          "body": "fix brakeman for now",
          "is_bot": false,
          "headline": "Merge pull request #882 from open-data-rescue/fixes-for-content-image",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T19:13:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12a1b3f66ae391f38921c3d9a083cc0c42431801",
          "body": null,
          "is_bot": false,
          "headline": "fix brakeman for now",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T19:12:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92d336bec5e889b200f3f89cf0a032908b116a50",
          "body": "include jpeg utils for imagemagick",
          "is_bot": false,
          "headline": "Merge pull request #881 from open-data-rescue/fixes-for-content-image",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T19:02:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fabbfa70b1bf146e49d3c98f54aacce6598d4699",
          "body": null,
          "is_bot": false,
          "headline": "include jpeg utils for imagemagick",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T19:01:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42ad41b77889d1d98f41948c27ccdf30952fabd5",
          "body": "Try without concurrent ruby",
          "is_bot": false,
          "headline": "Merge pull request #880 from open-data-rescue/fixes-for-content-image",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T18:14:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbef74d0d8f5fe881fd7806c7c482b3110f6deb3",
          "body": null,
          "is_bot": false,
          "headline": "Try without concurrent ruby",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2026-07-21T18:13:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d21c132c8c6b2c2ee7ec9a2042a3332f94006a86",
          "body": "Bring staging up to date with prod",
          "is_bot": false,
          "headline": "Merge pull request #879 from open-data-rescue/production",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-17T14:06:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a67459a25b1b40268756c401386e773e491884b2",
          "body": "Fix ReferenceError breaking the field-group admin field picker",
          "is_bot": false,
          "headline": "Merge pull request #878 from open-data-rescue/fix/field-group-admin-ui",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-07-17T14:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99859efc12362f2cf4c1db8e0581e29f85963adc",
          "body": "_fields_app.html.erb and _field_options_app.html.erb are loaded as\n<script type=\"module\">, which always runs in strict mode. Several\nBackbone/Marionette models, collections, and views were being assigned\nwithout var/let/const, which throws a ReferenceError under strict mode\ninstead of silently creat\n[…]\ne admin\nfield-group edit page silently never rendered.\n\nFixed by declaring all of these with var, matching the working pattern\nalready used in _field_groups_app.html.erb and _transcriber_app.html.erb.",
          "is_bot": false,
          "headline": "Fix ReferenceError breaking the field-group admin field picker",
          "author_name": "VickyS08",
          "author_login": "VickyS08",
          "committed_at": "2026-07-16T14:34:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "369dfeea9142043fa22283bcc43285e1778bfe6b",
          "body": "some security patches",
          "is_bot": false,
          "headline": "Merge pull request #876 from open-data-rescue/prod-patches",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-03-10T13:53:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1189f606fd7c5bf3140a0a2ebe3b5513723970bc",
          "body": null,
          "is_bot": false,
          "headline": "some security patches",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2026-03-10T13:52:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "314fd7cd5102d9571b09ef9cec4d004784876e2f",
          "body": "Fix wrong vite upgrade",
          "is_bot": false,
          "headline": "Merge pull request #875 from open-data-rescue/fix-prod-build",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2026-03-10T13:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33c27aba68daa1a83729f2c8b02342d0db67cd87",
          "body": null,
          "is_bot": false,
          "headline": "Fix wrong vite upgrade",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2026-03-10T13:38:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d23ef91c2fb4068d5c94716159d91bdcb961388",
          "body": "…cop-rspec-3.8.0\n\nBump rubocop-rspec from 3.3.0 to 3.8.0",
          "is_bot": false,
          "headline": "Merge pull request #870 from open-data-rescue/dependabot/bundler/rubo…",
          "author_name": "Robert Smith",
          "author_login": "rsmithlal",
          "committed_at": "2026-03-09T17:33:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93954626261b83bfce07441abc66c06a90fd4b14",
          "body": "…eman-7.1.1\n\nBump brakeman from 6.2.2 to 7.1.1",
          "is_bot": false,
          "headline": "Merge pull request #871 from open-data-rescue/dependabot/bundler/brak…",
          "author_name": "Robert Smith",
          "author_login": "rsmithlal",
          "committed_at": "2026-03-09T17:32:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87d6cecaaa3a71560829418fcf1f387363376d79",
          "body": "…_ruby-3.9.2\n\nBump vite_ruby from 3.3.4 to 3.9.2",
          "is_bot": false,
          "headline": "Merge pull request #873 from open-data-rescue/dependabot/bundler/vite…",
          "author_name": "Robert Smith",
          "author_login": "rsmithlal",
          "committed_at": "2026-03-09T17:32:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "811f483f135ef6bf44242e9197df52addfd7e9eb",
          "body": "…elic_rpm-9.23.0\n\nBump newrelic_rpm from 9.16.1 to 9.23.0",
          "is_bot": false,
          "headline": "Merge pull request #874 from open-data-rescue/dependabot/bundler/newr…",
          "author_name": "Robert Smith",
          "author_login": "rsmithlal",
          "committed_at": "2026-03-09T17:32:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad48c8bc61903d708c7487bc9bfa7d0f74938571",
          "body": "Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 9.16.1 to 9.23.0.\n- [Release notes](https://github.com/newrelic/newrelic-ruby-agent/releases)\n- [Changelog](https://github.com/newrelic/newrelic-ruby-agent/blob/dev/CHANGELOG.md)\n- [Commits](https://github.com/newrelic/newrel\n[…]\ns:\n- dependency-name: newrelic_rpm\n  dependency-version: 9.23.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump newrelic_rpm from 9.16.1 to 9.23.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-12-01T10:40:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1a0e60a73938be7ce1249a44f4950aec284f12f9",
          "body": "Bumps [vite_ruby](https://github.com/ElMassimo/vite_ruby) from 3.3.4 to 3.9.2.\n- [Changelog](https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@3.9.2/vite_ruby/CHANGELOG.md)\n- [Commits](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@3.3.4...vite_ruby@3.9.2)\n\n---\nupdated-dependencies:\n- dependency-name: vite_ruby\n  dependency-version: 3.9.2\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump vite_ruby from 3.3.4 to 3.9.2",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-12-01T10:40:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a4a63db2626b72c1f83387e2f8163be3e24545b",
          "body": "Bumps [brakeman](https://github.com/presidentbeef/brakeman) from 6.2.2 to 7.1.1.\n- [Release notes](https://github.com/presidentbeef/brakeman/releases)\n- [Changelog](https://github.com/presidentbeef/brakeman/blob/main/CHANGES.md)\n- [Commits](https://github.com/presidentbeef/brakeman/compare/v6.2.2...\n[…]\nncies:\n- dependency-name: brakeman\n  dependency-version: 7.1.1\n  dependency-type: direct:development\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump brakeman from 6.2.2 to 7.1.1",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-12-01T10:39:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0af85badc69033cb268fc7af7e5e9e3e9fcc9139",
          "body": "Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.3.0 to 3.8.0.\n- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)\n- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.3\n[…]\n:\n- dependency-name: rubocop-rspec\n  dependency-version: 3.8.0\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump rubocop-rspec from 3.3.0 to 3.8.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2025-12-01T10:39:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3b0144cb7895d0f8bb2c9290a15d97c61cedef3b",
          "body": "Update for ECCC image",
          "is_bot": false,
          "headline": "Merge pull request #851 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2025-09-11T14:09:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c28e491759df0ff2b7c1d2d3f9758b0f37c8ec69",
          "body": "Put the ECCC background image in",
          "is_bot": false,
          "headline": "Merge pull request #850 from open-data-rescue/fix-background-image",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2025-09-11T13:53:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f86c6e905e708a19c71bb6f7e387ea476fa8c6d",
          "body": null,
          "is_bot": false,
          "headline": "Put the ECCC background image in",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2025-09-11T13:52:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7202a381445cec4d65ed1dc4883dcb5a13e0e45",
          "body": "require open struct",
          "is_bot": false,
          "headline": "Merge pull request #838 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-12-20T14:59:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7bc426ac4e186310763f0b33e744e18fe557224",
          "body": null,
          "is_bot": false,
          "headline": "require open struct",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-12-20T14:48:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "724785f755be4f22907e54a46dbb9062b4e34270",
          "body": "Fixes for page upload",
          "is_bot": false,
          "headline": "Merge pull request #837 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T23:09:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bfff3d25901d97ae32de833b402bd6fa9612df5",
          "body": "Fix versions of js packages",
          "is_bot": false,
          "headline": "Merge pull request #836 from open-data-rescue/fix-upload-issue",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T22:55:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15c5a789fa73028816e5a668ef303f7cf27c6c86",
          "body": null,
          "is_bot": false,
          "headline": "Fix versions of js packages",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T22:54:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55607ad5887cdffb591206b76cfe23ebba9761f7",
          "body": "Fix vite version",
          "is_bot": false,
          "headline": "Merge pull request #835 from open-data-rescue/fix-upload-issue",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T22:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bca67ab411e43703bd300fb7ea506bf651378b7d",
          "body": null,
          "is_bot": false,
          "headline": "Fix vite version",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T22:15:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48f4218b87edf4a7f01a3d7b460974bf63f63b01",
          "body": "Fixes for page upload",
          "is_bot": false,
          "headline": "Merge pull request #834 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T19:28:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b689d73a958ede4e0a9de8125b644e37d8f7532",
          "body": "Fix for page upload",
          "is_bot": false,
          "headline": "Merge pull request #833 from open-data-rescue/fix-upload-issue",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T18:55:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ac1e88a9cb0ba5e15e4927610bc69481a971420",
          "body": null,
          "is_bot": false,
          "headline": "Fix for page upload",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-12-19T18:54:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "727aea13fedf69750f208efbe1684bf0e5a93e9f",
          "body": "Fix css for box position on resize",
          "is_bot": false,
          "headline": "Merge pull request #832 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-18T14:28:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d241213fb5b0ccda9380b79b8ece1796c61cd9bd",
          "body": "Resize position error",
          "is_bot": false,
          "headline": "Merge pull request #831 from open-data-rescue/resize-position-error",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-17T19:01:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc9328e4f517ffe0050b8df5386b7c5f0ef65748",
          "body": "on resize",
          "is_bot": false,
          "headline": "Fix issue of box moving to bottom of image",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-09-17T18:59:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b9d7a753c595916baf22f0ad2e4aa4aea8b98b3",
          "body": "Staging",
          "is_bot": false,
          "headline": "Merge pull request #830 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-10T12:33:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5c8033146183f4039c9ded918127f522346020e",
          "body": "Fix resize draw",
          "is_bot": false,
          "headline": "Merge pull request #829 from open-data-rescue/fix-resize-draw",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-09T19:32:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e21b8ceed20a9d82223bf4f5b6e271921cb9e0ea",
          "body": null,
          "is_bot": false,
          "headline": "More fixes for the geometric calculations",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-09-09T19:31:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c56445c5124d76196babb11a5c03582ff8094372",
          "body": "fixes for box move and resize",
          "is_bot": false,
          "headline": "Merge pull request #828 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-05T16:09:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46ce70105e6cf1075d294be57774116ee2257a8f",
          "body": "Annotation size move fixes",
          "is_bot": false,
          "headline": "Merge pull request #827 from open-data-rescue/annotation-size-move-fixes",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-05T16:00:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9fa7e433e8fc533dbc039f881030154d95bdac3",
          "body": null,
          "is_bot": false,
          "headline": "fixes for annotation resize and move issues",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-09-05T15:59:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b74ef8e1732d7d5ca098439046b63bd029d37d89",
          "body": "Fixes for zoom issue and assets",
          "is_bot": false,
          "headline": "Merge pull request #826 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-09-04T19:08:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98fd516b5b7e01ff10dd105f823562e9cba53ab6",
          "body": null,
          "is_bot": false,
          "headline": "Fixes for zoom issue and assets",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-09-04T18:52:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02c82e31539b79cd2a895c34fb5a1143d48136c4",
          "body": "FF css changes for zoom",
          "is_bot": false,
          "headline": "Merge pull request #825 from open-data-rescue/fix-ff-zoom-issue",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-08-30T17:27:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9de2da3a06910c41de36cf2962ab7b9360236537",
          "body": null,
          "is_bot": false,
          "headline": "FF css changes for zoom",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-08-30T17:26:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d0641435d651ee989b41968a60203ec314ef924",
          "body": "Staging R7 to Prod",
          "is_bot": false,
          "headline": "Merge pull request #824 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-08-30T14:12:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2cc4a49b0d5125fc9d21bf7b60c656df87a78cc",
          "body": null,
          "is_bot": false,
          "headline": "update brakeman",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-08-30T13:31:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2418d80aa4da92fdc9ca3ed4e60194502ce08961",
          "body": null,
          "is_bot": false,
          "headline": "fix db host for specs",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-08-30T13:23:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b0acac12647874b0e03931d31582884cfb19d6d",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'production' into rails7-upgrade",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-08-28T14:39:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6816e51a000d743675533403d6ea0cf6ae11c080",
          "body": "fix start tls setting",
          "is_bot": false,
          "headline": "Merge pull request #822 from open-data-rescue/fix-starttls-setting",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-06-18T14:54:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78d6e734bd3e24dc6274cf663a10bc1327229d8c",
          "body": null,
          "is_bot": false,
          "headline": "fix start tls setting",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-06-18T14:53:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49e434796d2cf8226cff7a1a0d1f93d34468d713",
          "body": "Fix image file name interpolation for ECCC",
          "is_bot": false,
          "headline": "Merge pull request #821 from open-data-rescue/fix-image-file-name-issue",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-05-11T15:53:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b9dd79214f5149e9aeeb8e748c88bdcaadaebbb",
          "body": null,
          "is_bot": false,
          "headline": "Fix image file name interpolation for ECCC",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-05-11T15:51:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a44136ef99879c8fe0b81f0399d7950e002d23f3",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'staging' into rails7-upgrade",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-04-30T15:56:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ad4b2f7fcd2d196e0f1df7bfbe1e1d1edba8a5c",
          "body": "Fixes selection on transcription window",
          "is_bot": false,
          "headline": "Merge pull request #820 from open-data-rescue/fix-select2",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-04-30T15:53:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59f5130ba2609e81226e04c38b542caca064b307",
          "body": null,
          "is_bot": false,
          "headline": "Fixes selection on transcription window",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-04-30T15:52:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a43796a129763737caff08fa9549ed604d52be7",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'production' into staging",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-04-30T12:07:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "292ebd6591f42c7e70be825dbcedab2b23a6332d",
          "body": "set a sort order on add field",
          "is_bot": false,
          "headline": "Merge pull request #819 from open-data-rescue/fix-sort-order-bug",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2024-01-23T21:12:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b790b157a292e8ea1a95ef790bb065556c93cee5",
          "body": null,
          "is_bot": false,
          "headline": "set a sort order on add field",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2024-01-23T21:11:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e51251fb9f74030ae94f6e9be6d4b1f0f2654c0f",
          "body": "fix typo",
          "is_bot": false,
          "headline": "Merge pull request #809 from open-data-rescue/smtp-tweak",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-11-27T12:37:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e52f21266135a03d427b7c910511c204ae389f8b",
          "body": null,
          "is_bot": false,
          "headline": "fix typo",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-11-27T12:36:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "173f0ad2bf9ff07b7a72a95bc866e28444d4d7a7",
          "body": "explicit smtp settings",
          "is_bot": false,
          "headline": "Merge pull request #808 from open-data-rescue/smtp-tweak",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-11-27T12:29:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "557d28ef635e066cc76d7adf608b078c0927246e",
          "body": null,
          "is_bot": false,
          "headline": "explicit smtp settings",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-11-27T12:27:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f66dd6213634dacfc2dcf6117325b1a83ec7b81",
          "body": null,
          "is_bot": false,
          "headline": "tweak my conf",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-11-27T12:11:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e71968f03cff241c1485ed27f55fdba0cf671c77",
          "body": null,
          "is_bot": false,
          "headline": "Fixes for vite module load and select2",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-09-13T16:35:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92994eab7dd34f80927850cbe9b73d9d12bb1a71",
          "body": "Update gems",
          "is_bot": false,
          "headline": "Merge pull request #775 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-09-07T14:53:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f88a5ef8e76c3b7627915268e863b10314fd5f85",
          "body": null,
          "is_bot": false,
          "headline": "Update gems",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-09-07T14:52:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8ed5a4daed9e9c001fceff9781293b58c75bd3b",
          "body": "Fix transcription error for new lines",
          "is_bot": false,
          "headline": "Merge pull request #774 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-09-07T14:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1c6edf80a386426a7acd8287513e853be577b277",
          "body": null,
          "is_bot": false,
          "headline": "Fix transcription error for new lines",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-09-07T14:23:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ee8be10282ee6722c7f7afc617759a5361c1e11",
          "body": "fixed my profile page",
          "is_bot": false,
          "headline": "Merge pull request #754 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-08-02T13:36:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4babf9bde00bb5e46540450c856e273e19e19d56",
          "body": null,
          "is_bot": false,
          "headline": "fixed my profile page",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-08-02T13:35:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47a4db8330521391ad41b487771543583eb31889",
          "body": "fix case typo",
          "is_bot": false,
          "headline": "Merge pull request #752 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T16:29:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7979b2c201aee598ef7d1963d1888dbadf7ccbe",
          "body": null,
          "is_bot": false,
          "headline": "fix case",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T16:26:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0867c0a21b6383eeb9e1f89c1c4c491d47fc5622",
          "body": null,
          "is_bot": false,
          "headline": "fix case typo",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T16:14:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3513d16785dcff6cf36e129bf0c2a2f29086d2e5",
          "body": "fixes for action",
          "is_bot": false,
          "headline": "Merge pull request #751 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T14:09:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0165ed0687c645ea3e6089d5068e5cb8d00dd0e",
          "body": null,
          "is_bot": false,
          "headline": "fixes for action",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T14:08:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7053e8810ed6fe51c64dfcac0d3b5c99d1580adc",
          "body": "fix for github action",
          "is_bot": false,
          "headline": "Merge pull request #750 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T13:54:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b75c078a6b6f13796b17bfc9057949b2cf4cd86",
          "body": null,
          "is_bot": false,
          "headline": "fix for github action",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T13:53:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11a7f8aa797b64f1b4c5e8f4cdfbce2d072aec10",
          "body": "Rails7 upgrade - RC",
          "is_bot": false,
          "headline": "Merge pull request #749 from open-data-rescue/rails7-upgrade",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T13:29:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "698f42950c929e22413057e6c7ce4ea5107debfc",
          "body": null,
          "is_bot": false,
          "headline": "Tweak startup scripts",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-08-01T13:28:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db3c0602b1dfcd33abee40847bd555c8ecc7f81d",
          "body": null,
          "is_bot": false,
          "headline": "WIP",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-07-31T20:33:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57478c46be90cf3abce9b3099af9197687980d24",
          "body": null,
          "is_bot": false,
          "headline": "merge in fixes",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-07-31T20:16:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ed21aa8efa04c85483c4aea8e99ab5ac229fd18",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'production' into rails7-upgrade",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-07-31T20:16:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01c475977bd40b64fdf6a295be43aec0fda3386b",
          "body": null,
          "is_bot": false,
          "headline": "WIP - mostly working",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-07-31T20:12:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a90a4ef760481ceddf4528fe87a01af390f79cba",
          "body": "…elic_rpm-9.3.1\n\nBump newrelic_rpm from 9.2.0 to 9.3.1",
          "is_bot": false,
          "headline": "Merge pull request #743 from open-data-rescue/dependabot/bundler/newr…",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-07-12T12:41:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91d4909cfb9f57e874f90667fe265242b21f400b",
          "body": "Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 9.2.0 to 9.3.1.\n- [Release notes](https://github.com/newrelic/newrelic-ruby-agent/releases)\n- [Changelog](https://github.com/newrelic/newrelic-ruby-agent/blob/dev/CHANGELOG.md)\n- [Commits](https://github.com/newrelic/newrelic\n[…]\n3.1)\n\n---\nupdated-dependencies:\n- dependency-name: newrelic_rpm\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump newrelic_rpm from 9.2.0 to 9.3.1",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2023-07-12T10:31:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4e52294bc5edf20a71b96c3b09dc0fcb15040e1",
          "body": "…cop-1.53.0\n\nBump rubocop from 1.50.2 to 1.53.0",
          "is_bot": false,
          "headline": "Merge pull request #736 from open-data-rescue/dependabot/bundler/rubo…",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-06-24T13:49:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ee6cb2858546f9bce52981d5d3ce59282c35070",
          "body": "Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.50.2 to 1.53.0.\n- [Release notes](https://github.com/rubocop/rubocop/releases)\n- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/rubocop/rubocop/compare/v1.50.2...v1.53.0)\n\n---\nupdated-dependencies:\n- dependency-name: rubocop\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "Bump rubocop from 1.50.2 to 1.53.0",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2023-06-23T10:56:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "430f10ef194e648da5efc4d310eecc6bc85f81cb",
          "body": null,
          "is_bot": false,
          "headline": "WIP",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-06-21T19:46:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ce6cc48ff54c823c17ecabcf067cf070b0fcde8",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'staging' into rails7-upgrade",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-06-13T20:35:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46cbc2058ae26b1486c8af49efe6e60f3d74678d",
          "body": "update for google analytics 4",
          "is_bot": false,
          "headline": "Merge pull request #733 from open-data-rescue/staging",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-06-13T12:27:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b8bd512c90992fce54f4e75e84148a96ed8e9e2",
          "body": null,
          "is_bot": false,
          "headline": "update for google analytics 4",
          "author_name": "balen",
          "author_login": "balen",
          "committed_at": "2023-06-13T12:18:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a690aa2f40f96635bcade21be2a20a0776f27b8",
          "body": "Update dependabot.yml to assign balen to PRs",
          "is_bot": false,
          "headline": "Merge pull request #731 from open-data-rescue/rsmithlal-patch-1",
          "author_name": "Henry Balen",
          "author_login": "balen",
          "committed_at": "2023-06-10T12:22:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09357004497f254adeab033f59cf557a4ac164e7",
          "body": "I have been automatically assigned the dependabot PRs for quite some time and I'm not sure why. These PR notifications are always showing up in my email, so I made this change to try and ensure that the PRs are assigned to balen and not to me by default.\r\n\r\nThe following documentation explains the assignees in the dependabot.yml.\r\n\r\nhttps://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#assignees",
          "is_bot": false,
          "headline": "Update dependabot.yml to assign balen to PRs",
          "author_name": "Robert Smith",
          "author_login": "rsmithlal",
          "committed_at": "2023-06-07T21:41:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 51,
      "commits_last_year": 28,
      "latest_release_at": "2026-07-22T19:01:30Z",
      "latest_release_tag": "v2.3.10",
      "releases_from_tags": false,
      "days_since_last_push": 5,
      "active_weeks_last_year": 6,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 76.2
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 10,
      "stars": 15,
      "watchers": 6,
      "fork_history": {
        "days": [
          {
            "date": "2016-03-14",
            "count": 1
          },
          {
            "date": "2019-07-09",
            "count": 1
          },
          {
            "date": "2020-01-31",
            "count": 1
          },
          {
            "date": "2020-02-09",
            "count": 1
          },
          {
            "date": "2022-07-23",
            "count": 1
          },
          {
            "date": "2022-08-16",
            "count": 1
          },
          {
            "date": "2022-11-17",
            "count": 1
          },
          {
            "date": "2022-12-09",
            "count": 1
          },
          {
            "date": "2023-09-20",
            "count": 1
          },
          {
            "date": "2024-11-16",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 10,
        "total_forks": 10
      },
      "star_history": null,
      "open_issues_and_prs": 11
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 167184,
      "source_files_sampled": 292,
      "oversized_source_files": 2,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "Gemfile",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "underscore",
            "direct": true,
            "version": "1.8.3",
            "severity": "critical",
            "ecosystem": "npm",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-cf4h-3jhx-xvhq",
              "GHSA-qpx9-hpmf-5gmw"
            ],
            "fixed_version": "1.13.8",
            "advisory_count": 2,
            "oldest_advisory_days": 1908
          },
          {
            "name": "activestorage",
            "direct": false,
            "version": "7.0.10",
            "severity": "critical",
            "ecosystem": "rubygems",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-73f9-jhhh-hr5m",
              "GHSA-9xrj-h377-fr87",
              "GHSA-p9fm-f462-ggrg",
              "GHSA-qcfx-2mfw-w4cg",
              "GHSA-r46p-8f7g-vvvg",
              "GHSA-r4mg-4433-c7g3"
            ],
            "fixed_version": "8.1.2.1",
            "advisory_count": 6,
            "oldest_advisory_days": 348
          },
          {
            "name": "jsonpath-plus",
            "direct": false,
            "version": "7.2.0",
            "severity": "critical",
            "ecosystem": "npm",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-hw8r-x6gr-5gjp",
              "GHSA-pppg-cpfq-h7wr"
            ],
            "fixed_version": "10.3.0",
            "advisory_count": 2,
            "oldest_advisory_days": 654
          },
          {
            "name": "axios",
            "direct": true,
            "version": "1.13.6",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.7,
            "advisory_ids": [
              "GHSA-35jp-ww65-95wh",
              "GHSA-3g43-6gmg-66jw",
              "GHSA-3p68-rc4w-qgx5",
              "GHSA-3w6x-2g7m-8v23",
              "GHSA-42h9-826w-cgv3",
              "GHSA-445q-vr5w-6q77",
              "GHSA-5c9x-8gcm-mpgx",
              "GHSA-62hf-57xw-28j9",
              "GHSA-6chq-wfr3-2hj9",
              "GHSA-777c-7fjr-54vf"
            ],
            "fixed_version": "1.18.0",
            "advisory_count": 28,
            "oldest_advisory_days": 109
          },
          {
            "name": "lodash",
            "direct": true,
            "version": "4.17.23",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 8.1,
            "advisory_ids": [
              "GHSA-f23m-r3pf-42rh",
              "GHSA-r5fr-rjxr-66jc"
            ],
            "fixed_version": "4.18.0",
            "advisory_count": 2,
            "oldest_advisory_days": 117
          },
          {
            "name": "puma",
            "direct": true,
            "version": "6.3.1",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-2vqw-3mp8-cgmx",
              "GHSA-9hf4-67fc-4vf4",
              "GHSA-c2f4-cvqm-65w2",
              "GHSA-qpgp-93vx-g8v8"
            ],
            "fixed_version": "8.0.2",
            "advisory_count": 4,
            "oldest_advisory_days": 931
          },
          {
            "name": "activesupport",
            "direct": false,
            "version": "7.0.10",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-2j26-frm8-cmj9",
              "GHSA-89vf-4333-qx8v",
              "GHSA-cg4j-q9v8-6v38"
            ],
            "fixed_version": "8.1.2.1",
            "advisory_count": 3,
            "oldest_advisory_days": 126
          },
          {
            "name": "concurrent-ruby",
            "direct": false,
            "version": "1.3.4",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-6wx8-w4f5-wwcr",
              "GHSA-h8w8-99g7-qmvj",
              "GHSA-wv3x-4vxv-whpp"
            ],
            "fixed_version": "1.3.7",
            "advisory_count": 3,
            "oldest_advisory_days": 38
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-hmw2-7cc7-3qxx"
            ],
            "fixed_version": "4.0.6",
            "advisory_count": 1,
            "oldest_advisory_days": 42
          },
          {
            "name": "immutable",
            "direct": false,
            "version": "5.1.5",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-v56q-mh7h-f735",
              "GHSA-xvcm-6775-5m9r"
            ],
            "fixed_version": "5.1.8",
            "advisory_count": 2,
            "oldest_advisory_days": 6
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m",
              "GHSA-h67p-54hq-rp68"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 2,
            "oldest_advisory_days": 42
          },
          {
            "name": "json",
            "direct": false,
            "version": "2.16.0",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 8.2,
            "advisory_ids": [
              "GHSA-3m6g-2423-7cp3",
              "GHSA-x2f5-4prf-w687"
            ],
            "fixed_version": "2.19.9",
            "advisory_count": 2,
            "oldest_advisory_days": 130
          },
          {
            "name": "nokogiri",
            "direct": false,
            "version": "1.18.10",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-5prr-v3j2-97mh",
              "GHSA-5v8h-3h3q-446p",
              "GHSA-8678-w3jw-xfc2",
              "GHSA-9cv2-cfxc-v4v2",
              "GHSA-c4rq-3m3g-8wgx",
              "GHSA-p67v-3w7g-wjg7",
              "GHSA-phwj-rprq-35pp",
              "GHSA-v2fc-qm4h-8hqv",
              "GHSA-wfpw-mmfh-qq69",
              "GHSA-wjv4-x9w8-wm3h"
            ],
            "fixed_version": "1.19.4",
            "advisory_count": 11,
            "oldest_advisory_days": 159
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3v7f-55p6-f55p",
              "GHSA-c2c7-rcm5-vvqj"
            ],
            "fixed_version": "4.0.4",
            "advisory_count": 2,
            "oldest_advisory_days": 124
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.3",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3v7f-55p6-f55p",
              "GHSA-c2c7-rcm5-vvqj"
            ],
            "fixed_version": "4.0.4",
            "advisory_count": 2,
            "oldest_advisory_days": 124
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.8",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-6g55-p6wh-862q",
              "GHSA-qx2v-qp2m-jg93",
              "GHSA-r28c-9q8g-f849"
            ],
            "fixed_version": "8.5.18",
            "advisory_count": 3,
            "oldest_advisory_days": 94
          },
          {
            "name": "rack",
            "direct": false,
            "version": "2.2.21",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-7mqq-6cf9-v2qp",
              "GHSA-8vqr-qjwx-82mw",
              "GHSA-h2jq-g4cq-5ppq",
              "GHSA-mxw3-3hh2-x2mh",
              "GHSA-q2ww-5357-x388",
              "GHSA-q4qf-9j86-f5mh",
              "GHSA-qv7j-4883-hwh7",
              "GHSA-v569-hp3g-36wr",
              "GHSA-vgpv-f759-9wx3",
              "GHSA-whrj-4476-wvmp"
            ],
            "fixed_version": "3.2.6",
            "advisory_count": 11,
            "oldest_advisory_days": 160
          },
          {
            "name": "vite",
            "direct": false,
            "version": "4.5.14",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-4w7w-66w2-5vf9",
              "GHSA-93m4-6634-74q7",
              "GHSA-c27g-q93r-2cwf",
              "GHSA-fx2h-pf6j-xcff",
              "GHSA-g4jq-h2w9-997c",
              "GHSA-jqfw-vq24-v9c3",
              "GHSA-v6wh-96g9-6wx3"
            ],
            "fixed_version": "8.0.16",
            "advisory_count": 7,
            "oldest_advisory_days": 321
          },
          {
            "name": "websocket-driver",
            "direct": false,
            "version": "0.8.0",
            "severity": "high",
            "ecosystem": "rubygems",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-2x63-gw47-w4mm",
              "GHSA-33ph-fccm-39pj",
              "GHSA-8j3g-f24p-4mpw",
              "GHSA-ghhp-3qvg-889p"
            ],
            "fixed_version": "0.8.2",
            "advisory_count": 4,
            "oldest_advisory_days": 12
          },
          {
            "name": "devise",
            "direct": true,
            "version": "4.9.4",
            "severity": "moderate",
            "ecosystem": "rubygems",
            "cvss_score": 6.1,
            "advisory_ids": [
              "GHSA-57hq-95w6-v4fc",
              "GHSA-jp94-3292-c3xv"
            ],
            "fixed_version": "5.0.4",
            "advisory_count": 2,
            "oldest_advisory_days": 132
          },
          {
            "name": "activerecord",
            "direct": false,
            "version": "7.0.10",
            "severity": "moderate",
            "ecosystem": "rubygems",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-76r7-hhxj-r776"
            ],
            "fixed_version": "8.0.2.1",
            "advisory_count": 1,
            "oldest_advisory_days": 348
          },
          {
            "name": "bcrypt",
            "direct": false,
            "version": "3.1.20",
            "severity": "moderate",
            "ecosystem": "rubygems",
            "cvss_score": 6.7,
            "advisory_ids": [
              "GHSA-f27w-vcwj-c954"
            ],
            "fixed_version": "3.1.22",
            "advisory_count": 1,
            "oldest_advisory_days": 130
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.18.20",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-67mh-4wv8-2f99"
            ],
            "fixed_version": "0.25.0",
            "advisory_count": 1,
            "oldest_advisory_days": 532
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.11",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-r4q5-vmmm-2653"
            ],
            "fixed_version": "1.16.0",
            "advisory_count": 1,
            "oldest_advisory_days": 105
          },
          {
            "name": "loofah",
            "direct": false,
            "version": "2.24.1",
            "severity": "moderate",
            "ecosystem": "rubygems",
            "cvss_score": 4.7,
            "advisory_ids": [
              "GHSA-9wjq-cp2p-hrgf"
            ],
            "fixed_version": "2.25.2",
            "advisory_count": 1,
            "oldest_advisory_days": 6
          },
          {
            "name": "net-imap",
            "direct": false,
            "version": "0.5.12",
            "severity": "moderate",
            "ecosystem": "rubygems",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-46q3-7gv7-qmgg",
              "GHSA-75xq-5h9v-w6px",
              "GHSA-87pf-fpwv-p7m7",
              "GHSA-8p34-64r3-mwg8",
              "GHSA-c4fp-cxrr-mj66",
              "GHSA-hm49-wcqc-g2xg",
              "GHSA-q2mw-fvj9-vvcw",
              "GHSA-vcgp-9326-pqcp"
            ],
            "fixed_version": "0.6.4.1",
            "advisory_count": 8,
            "oldest_advisory_days": 84
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "1.10.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 4.3,
            "advisory_ids": [
              "GHSA-48c2-rrv3-qjmp"
            ],
            "fixed_version": "2.8.3",
            "advisory_count": 1,
            "oldest_advisory_days": 124
          },
          {
            "name": "actionview",
            "direct": false,
            "version": "7.0.10",
            "severity": "low",
            "ecosystem": "rubygems",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-v55j-83pf-r9cq"
            ],
            "fixed_version": "8.1.2.1",
            "advisory_count": 1,
            "oldest_advisory_days": 126
          },
          {
            "name": "rails-html-sanitizer",
            "direct": false,
            "version": "1.6.2",
            "severity": "low",
            "ecosystem": "rubygems",
            "cvss_score": 0,
            "advisory_ids": [
              "GHSA-cj75-f6xr-r4g7"
            ],
            "fixed_version": "1.7.1",
            "advisory_count": 1,
            "oldest_advisory_days": 6
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "low": 2,
          "high": 16,
          "critical": 3,
          "moderate": 8
        },
        "advisory_count": 115,
        "affected_count": 29,
        "assessed_count": 372,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 5
      },
      "ecosystems": [
        "npm",
        "rubygems"
      ],
      "dependencies": [
        {
          "name": "rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 7.0.4"
        },
        {
          "name": "mysql2",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "paper_trail",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "ranked-model",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "uglifier",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "log4r",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "devise",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "pundit",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "slim-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "simple_form",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "will_paginate",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "kt-paperclip",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "with_advisory_lock",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "jbuilder",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "jsonapi-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "jsonapi-rspec",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "routing-filter",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "http_accept_language",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rails-i18n",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 7.0.0"
        },
        {
          "name": "i18n-active_record",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "rails-observers",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "globalize",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "globalize-accessors",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "sidekiq",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "sidekiq-scheduler",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "newrelic_rpm",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "puma",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 6.3.1"
        },
        {
          "name": "recaptcha",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "acts-as-taggable-on",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 9.0"
        },
        {
          "name": "cssbundling-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "~> 1.1"
        },
        {
          "name": "tzinfo-data",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "vite_rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "3.0.15"
        },
        {
          "name": "vite_ruby",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": "3.3.4"
        },
        {
          "name": "vite_plugin_legacy",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "haml-rails",
          "manifest": "Gemfile",
          "ecosystem": "rubygems",
          "version_constraint": null
        },
        {
          "name": "@intlify/unplugin-vue-i18n",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.11.0"
        },
        {
          "name": "@popperjs/core",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.11.7"
        },
        {
          "name": "@rollup/plugin-inject",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.0.3"
        },
        {
          "name": "@vitejs/plugin-vue",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.2.1"
        },
        {
          "name": "@vue/compat",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.47"
        },
        {
          "name": "axios",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.0"
        },
        {
          "name": "backbone",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.5.0"
        },
        {
          "name": "backbone-forms",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.1"
        },
        {
          "name": "backbone-model-file-upload",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.2"
        },
        {
          "name": "backbone.marionette",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "2.4.7"
        },
        {
          "name": "backbone.wreqr",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "1.3.6"
        },
        {
          "name": "blueimp-file-upload",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.32.0"
        },
        {
          "name": "bootstrap",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "4.6.1"
        },
        {
          "name": "bootstrap-notify",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.1.3"
        },
        {
          "name": "bootstrap-switch",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.4.0"
        },
        {
          "name": "bootstrap-vue",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.23.1"
        },
        {
          "name": "bowser",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.11.0"
        },
        {
          "name": "caniuse-lite",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.30001171"
        },
        {
          "name": "common-tags",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.8.0"
        },
        {
          "name": "jquery",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.6.4"
        },
        {
          "name": "jquery-ui-dist",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.13.2"
        },
        {
          "name": "jquery-ujs",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.3"
        },
        {
          "name": "jquery.kinetic",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.4"
        },
        {
          "name": "jsonapi-vuex",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "5.13.1"
        },
        {
          "name": "lodash",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.17.21"
        },
        {
          "name": "lodash.merge",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.6.2"
        },
        {
          "name": "luxon",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.1.0"
        },
        {
          "name": "magnify",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "2.1.0"
        },
        {
          "name": "moment",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.29.2"
        },
        {
          "name": "popper.js",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.16.1"
        },
        {
          "name": "sass",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.62.1"
        },
        {
          "name": "select2",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.0-rc.0"
        },
        {
          "name": "select2-bootstrap-theme",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.1.0-beta.10"
        },
        {
          "name": "select2-bootstrap4-theme",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0"
        },
        {
          "name": "tempusdominus-bootstrap-4",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.39.2"
        },
        {
          "name": "trumbowyg",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.27.3"
        },
        {
          "name": "underscore",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.13.8"
        },
        {
          "name": "vue",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.2.45"
        },
        {
          "name": "vue-router",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.6"
        },
        {
          "name": "vuex",
          "manifest": "package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@intlify/unplugin-vue-i18n",
            "direct": true,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@popperjs/core",
            "direct": true,
            "version": "2.11.8",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/plugin-inject",
            "direct": true,
            "version": "5.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": true,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compat",
            "direct": true,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": true,
            "version": "1.13.6",
            "ecosystem": "npm"
          },
          {
            "name": "backbone",
            "direct": true,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "backbone",
            "direct": true,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "backbone",
            "direct": true,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "backbone",
            "direct": true,
            "version": "1.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "backbone-forms",
            "direct": true,
            "version": "0.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "backbone-model-file-upload",
            "direct": true,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "backbone.marionette",
            "direct": true,
            "version": "2.4.7",
            "ecosystem": "npm"
          },
          {
            "name": "backbone.wreqr",
            "direct": true,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "backbone.wreqr",
            "direct": true,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "blueimp-file-upload",
            "direct": true,
            "version": "10.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "bootstrap",
            "direct": true,
            "version": "4.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "bootstrap",
            "direct": true,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "bootstrap-notify",
            "direct": true,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "bootstrap-switch",
            "direct": true,
            "version": "3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "bootstrap-vue",
            "direct": true,
            "version": "2.23.1",
            "ecosystem": "npm"
          },
          {
            "name": "bowser",
            "direct": true,
            "version": "2.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": true,
            "version": "1.0.30001777",
            "ecosystem": "npm"
          },
          {
            "name": "common-tags",
            "direct": true,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "jquery",
            "direct": true,
            "version": "3.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "jquery",
            "direct": true,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "jquery-ui-dist",
            "direct": true,
            "version": "1.13.3",
            "ecosystem": "npm"
          },
          {
            "name": "jquery-ujs",
            "direct": true,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jquery.kinetic",
            "direct": true,
            "version": "2.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "jsonapi-vuex",
            "direct": true,
            "version": "5.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash",
            "direct": true,
            "version": "4.17.23",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": true,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "luxon",
            "direct": true,
            "version": "3.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "magnify",
            "direct": true,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "moment",
            "direct": true,
            "version": "2.30.1",
            "ecosystem": "npm"
          },
          {
            "name": "popper.js",
            "direct": true,
            "version": "1.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "sass",
            "direct": true,
            "version": "1.97.3",
            "ecosystem": "npm"
          },
          {
            "name": "select2",
            "direct": true,
            "version": "4.1.0-rc.0",
            "ecosystem": "npm"
          },
          {
            "name": "select2-bootstrap-theme",
            "direct": true,
            "version": "0.1.0-beta.10",
            "ecosystem": "npm"
          },
          {
            "name": "select2-bootstrap4-theme",
            "direct": true,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tempusdominus-bootstrap-4",
            "direct": true,
            "version": "5.39.2",
            "ecosystem": "npm"
          },
          {
            "name": "trumbowyg",
            "direct": true,
            "version": "2.31.0",
            "ecosystem": "npm"
          },
          {
            "name": "underscore",
            "direct": true,
            "version": "1.13.8",
            "ecosystem": "npm"
          },
          {
            "name": "underscore",
            "direct": true,
            "version": "1.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": true,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "vue-router",
            "direct": true,
            "version": "4.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "vuex",
            "direct": true,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "acts-as-taggable-on",
            "direct": true,
            "version": "9.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "cssbundling-rails",
            "direct": true,
            "version": "1.4.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "devise",
            "direct": true,
            "version": "4.9.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "globalize",
            "direct": true,
            "version": "7.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "globalize-accessors",
            "direct": true,
            "version": "0.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "haml-rails",
            "direct": true,
            "version": "3.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "http_accept_language",
            "direct": true,
            "version": "2.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "i18n-active_record",
            "direct": true,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "jbuilder",
            "direct": true,
            "version": "2.14.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-rails",
            "direct": true,
            "version": "0.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-rspec",
            "direct": true,
            "version": "0.0.11",
            "ecosystem": "rubygems"
          },
          {
            "name": "kt-paperclip",
            "direct": true,
            "version": "7.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "log4r",
            "direct": true,
            "version": "1.1.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "mysql2",
            "direct": true,
            "version": "0.5.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "newrelic_rpm",
            "direct": true,
            "version": "9.23.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "paper_trail",
            "direct": true,
            "version": "16.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "puma",
            "direct": true,
            "version": "6.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "pundit",
            "direct": true,
            "version": "2.5.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails",
            "direct": true,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-i18n",
            "direct": true,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-observers",
            "direct": true,
            "version": "0.1.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "ranked-model",
            "direct": true,
            "version": "0.4.11",
            "ecosystem": "rubygems"
          },
          {
            "name": "recaptcha",
            "direct": true,
            "version": "5.21.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "routing-filter",
            "direct": true,
            "version": "0.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "sidekiq",
            "direct": true,
            "version": "7.3.9",
            "ecosystem": "rubygems"
          },
          {
            "name": "sidekiq-scheduler",
            "direct": true,
            "version": "6.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "simple_form",
            "direct": true,
            "version": "5.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "slim-rails",
            "direct": true,
            "version": "3.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "uglifier",
            "direct": true,
            "version": "4.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "vite_plugin_legacy",
            "direct": true,
            "version": "3.0.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "vite_rails",
            "direct": true,
            "version": "3.0.15",
            "ecosystem": "rubygems"
          },
          {
            "name": "vite_ruby",
            "direct": true,
            "version": "3.3.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "will_paginate",
            "direct": true,
            "version": "4.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "with_advisory_lock",
            "direct": true,
            "version": "5.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "@intlify/bundle-utils",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@intlify/message-compiler",
            "direct": false,
            "version": "9.3.0-beta.17",
            "ecosystem": "npm"
          },
          {
            "name": "@intlify/shared",
            "direct": false,
            "version": "9.3.0-beta.17",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.scandir",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.stat",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@nodelib/fs.walk",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@nuxt/opencollective",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-android-arm64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-darwin-arm64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-darwin-x64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-freebsd-x64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm-glibc",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm-musl",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm64-glibc",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-arm64-musl",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-x64-glibc",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-linux-x64-musl",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-win32-arm64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-win32-ia32",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@parcel/watcher-win32-x64",
            "direct": false,
            "version": "2.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/pluginutils",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "6.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.30",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "7.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "backbone.babysitter",
            "direct": false,
            "version": "0.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "blueimp-canvas-to-blob",
            "direct": false,
            "version": "3.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "blueimp-load-image",
            "direct": false,
            "version": "5.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "blueimp-tmpl",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "2.15.3",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.18.20",
            "ecosystem": "npm"
          },
          {
            "name": "escodegen",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-utils",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-glob",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "fastq",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.11",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "glob-parent",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "immutable",
            "direct": false,
            "version": "5.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-eslint-parser",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonpath-plus",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "moment-timezone",
            "direct": false,
            "version": "0.5.48",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "node-fetch",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "portal-vue",
            "direct": false,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.8",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "3.30.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tr46",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "unplugin",
            "direct": false,
            "version": "1.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "4.5.14",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-full-reload",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite-plugin-ruby",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "vue-functional-data-merge",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "webidl-conversions",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "webpack-virtual-modules",
            "direct": false,
            "version": "0.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-url",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "1.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "yaml-eslint-parser",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "actioncable",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "actionmailbox",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "actionmailer",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "actionpack",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "actiontext",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "actionview",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "activejob",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "activemodel",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "activerecord",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "activestorage",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "activesupport",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "ast",
            "direct": false,
            "version": "2.4.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "base64",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "bcrypt",
            "direct": false,
            "version": "3.1.20",
            "ecosystem": "rubygems"
          },
          {
            "name": "benchmark",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "better_errors",
            "direct": false,
            "version": "2.10.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "bigdecimal",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "bindex",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "binding_of_caller",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "brakeman",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "builder",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "byebug",
            "direct": false,
            "version": "12.0.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "climate_control",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "coderay",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "concurrent-ruby",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "connection_pool",
            "direct": false,
            "version": "2.5.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "crass",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "database_cleaner",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "database_cleaner-active_record",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "database_cleaner-core",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "date",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "debug_inspector",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "diff-lcs",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "docile",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "drb",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "dry-cli",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "erubi",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "et-orbi",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "execjs",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "factory_bot",
            "direct": false,
            "version": "6.5.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "factory_bot_rails",
            "direct": false,
            "version": "6.5.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "faker",
            "direct": false,
            "version": "3.5.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "ffi",
            "direct": false,
            "version": "1.17.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "fugit",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "fuubar",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "globalid",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "haml",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "i18n",
            "direct": false,
            "version": "1.14.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "json",
            "direct": false,
            "version": "2.16.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-deserializable",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-parser",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-rb",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-renderer",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "jsonapi-serializable",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "language_server-protocol",
            "direct": false,
            "version": "3.17.0.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "lint_roller",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "listen",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "logger",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "loofah",
            "direct": false,
            "version": "2.24.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "mail",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "marcel",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "method_source",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "mime-types-data",
            "direct": false,
            "version": "3.2025.0924",
            "ecosystem": "rubygems"
          },
          {
            "name": "mini_mime",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "minitest",
            "direct": false,
            "version": "5.26.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "mutex_m",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-imap",
            "direct": false,
            "version": "0.5.12",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-pop",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-protocol",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "net-smtp",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "nio4r",
            "direct": false,
            "version": "2.7.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "nokogiri",
            "direct": false,
            "version": "1.18.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "orm_adapter",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "parallel",
            "direct": false,
            "version": "1.27.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "parser",
            "direct": false,
            "version": "3.3.10.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "prism",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "pry",
            "direct": false,
            "version": "0.15.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "raabro",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "racc",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack",
            "direct": false,
            "version": "2.2.21",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-mini-profiler",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-proxy",
            "direct": false,
            "version": "0.7.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "rack-test",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-dom-testing",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rails-html-sanitizer",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "railties",
            "direct": false,
            "version": "7.0.10",
            "ecosystem": "rubygems"
          },
          {
            "name": "rainbow",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rake",
            "direct": false,
            "version": "13.3.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rb-fsevent",
            "direct": false,
            "version": "0.11.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "rb-inotify",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rb-readline",
            "direct": false,
            "version": "0.5.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "redis-client",
            "direct": false,
            "version": "0.26.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "regexp_parser",
            "direct": false,
            "version": "2.11.3",
            "ecosystem": "rubygems"
          },
          {
            "name": "request_store",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "responders",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rouge",
            "direct": false,
            "version": "4.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec-core",
            "direct": false,
            "version": "3.13.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec-expectations",
            "direct": false,
            "version": "3.13.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec-mocks",
            "direct": false,
            "version": "3.13.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec-rails",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "rspec-support",
            "direct": false,
            "version": "3.13.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop",
            "direct": false,
            "version": "1.81.7",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-ast",
            "direct": false,
            "version": "1.48.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rubocop-rspec",
            "direct": false,
            "version": "3.8.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "ruby-progressbar",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "rufus-scheduler",
            "direct": false,
            "version": "3.9.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "securerandom",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "shoulda-callback-matchers",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "shoulda-matchers",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "simplecov",
            "direct": false,
            "version": "0.22.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "simplecov-html",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "rubygems"
          },
          {
            "name": "simplecov_json_formatter",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "slim",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "temple",
            "direct": false,
            "version": "0.10.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "terrapin",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "thor",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "tilt",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "timeout",
            "direct": false,
            "version": "0.4.4",
            "ecosystem": "rubygems"
          },
          {
            "name": "tzinfo",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "rubygems"
          },
          {
            "name": "unicode-display_width",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "unicode-emoji",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "warden",
            "direct": false,
            "version": "1.2.9",
            "ecosystem": "rubygems"
          },
          {
            "name": "web-console",
            "direct": false,
            "version": "4.2.1",
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket-driver",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "rubygems"
          },
          {
            "name": "websocket-extensions",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "rubygems"
          },
          {
            "name": "zeitwerk",
            "direct": false,
            "version": "2.6.18",
            "ecosystem": "rubygems"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 372,
        "direct_count": 81,
        "indirect_count": 291
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 359,
        "open_issues": 11,
        "closed_ratio": 0.906,
        "closed_issues": 106,
        "closed_unmerged_prs": 408
      },
      "bus_factor": 2,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "rsmithlal",
          "commits": 518,
          "avatar_url": "https://avatars.githubusercontent.com/u/11048570?v=4"
        },
        {
          "type": "User",
          "login": "balen",
          "commits": 494,
          "avatar_url": "https://avatars.githubusercontent.com/u/184239?v=4"
        },
        {
          "type": "User",
          "login": "arfon",
          "commits": 47,
          "avatar_url": "https://avatars.githubusercontent.com/u/4483?v=4"
        },
        {
          "type": "User",
          "login": "tdb93",
          "commits": 42,
          "avatar_url": "https://avatars.githubusercontent.com/u/11939182?v=4"
        },
        {
          "type": "User",
          "login": "stuartlynn",
          "commits": 36,
          "avatar_url": "https://avatars.githubusercontent.com/u/209838?v=4"
        },
        {
          "type": "User",
          "login": "mcagan",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/43585486?v=4"
        },
        {
          "type": "User",
          "login": "y2749zha",
          "commits": 18,
          "avatar_url": "https://avatars.githubusercontent.com/u/44105404?v=4"
        },
        {
          "type": "User",
          "login": "ttfnrob",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/83192?v=4"
        },
        {
          "type": "User",
          "login": "VickyS08",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/18540289?v=4"
        },
        {
          "type": "User",
          "login": "raakal",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/46582468?v=4"
        }
      ],
      "contributors_sampled": 15,
      "top_contributor_share": 0.43
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "brakeman-analysis.yml",
        "deploy.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [
        ".rubocop.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Gemfile.lock",
        "yarn.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 6,
            "reason": "11 out of 17 merged PRs checked by a CI test -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 1/13 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 7 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 6,
            "reason": "SAST tool is not run on all commits -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "113 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "ab19697b457377fff0914b90b53bf1667c70a01b",
        "ran_at": "2026-07-28T09:27:05Z",
        "aggregate_score": 5.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-22T19:04:52Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-22T18:55:00Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 79,
          "created_at": "2017-10-24T22:47:29Z",
          "last_comment_at": "2023-03-06T14:58:36Z",
          "last_comment_author": "VickyS08"
        },
        {
          "number": 81,
          "created_at": "2017-11-01T17:36:42Z",
          "last_comment_at": "2023-03-06T15:03:04Z",
          "last_comment_author": "VickyS08"
        },
        {
          "number": 121,
          "created_at": "2019-08-22T20:02:27Z",
          "last_comment_at": "2023-03-06T15:07:10Z",
          "last_comment_author": "VickyS08"
        },
        {
          "number": 131,
          "created_at": "2019-09-23T22:50:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 243,
          "created_at": "2020-06-19T00:04:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 279,
          "created_at": "2020-08-17T22:28:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 360,
          "created_at": "2021-02-08T22:59:23Z",
          "last_comment_at": "2021-02-09T01:16:09Z",
          "last_comment_author": "raakal"
        },
        {
          "number": 385,
          "created_at": "2021-04-07T16:19:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 415,
          "created_at": "2021-06-17T22:20:48Z",
          "last_comment_at": "2023-01-30T13:41:00Z",
          "last_comment_author": "VickyS08"
        },
        {
          "number": 628,
          "created_at": "2023-02-15T17:32:03Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 877,
          "created_at": "2026-07-04T20:48:34Z",
          "last_comment_at": "2026-07-10T20:33:37Z",
          "last_comment_author": "balen"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/open-data-rescue/climate-data-rescue",
    "host": "github.com",
    "name": "climate-data-rescue",
    "owner": "open-data-rescue"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": "The weighted overall 61 is calibrated to 67 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 61,
            "calibrated": 67,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 67,
      "inputs": {
        "security": 53,
        "vitality": 75,
        "community": 39,
        "governance": 59,
        "calibration": "2026-08-02",
        "engineering": 76,
        "ai_readiness": 44,
        "weighted_overall_raw": 61
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 75,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "commits_last_year": 28,
              "human_commit_share": 0.94,
              "days_since_last_push": 5,
              "active_weeks_last_year": 6
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "6/52 weeks with commits",
                "points": 4.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "28 commits in the last year",
                "points": 13.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 92,
            "inputs": {
              "releases_count": 51,
              "latest_release_tag": "v2.3.10",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 76.2
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "51 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 51
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~76.2 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 76.2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 11,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 11 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "weak",
        "name": "Community & Adoption",
        "value": 39,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 30,
            "inputs": {
              "forks": 10,
              "stars": 15,
              "watchers": 6,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "15 stars",
                "points": 18.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "10 forks",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "6 watchers",
                "points": 3.9,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "readme_badge_services": [],
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 59,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 15,
              "top_contributor_share": 0.43
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 43% of commits",
                "points": 12.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 43
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "15 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "merged_prs": 359,
              "open_issues": 11,
              "closed_issues": 106,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.906,
              "closed_unmerged_prs": 408,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "91% of issues closed",
                "points": 38.1,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "359/767 decided PRs merged",
                "points": 14,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 359,
                      "decided": 767
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/13 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "followers": 5,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "open-data-rescue",
              "public_repos": 6,
              "account_age_days": 2572
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "5 followers of open-data-rescue",
                "points": 5.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 5,
                      "login": "open-data-rescue"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "6 public repos, account ~7 yr old",
                "points": 18.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 6
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 76,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".rubocop.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".rubocop.yml"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "11 out of 17 merged PRs checked by a CI test -- score normalized to 6",
                "points": 12,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "transcription",
                "data-rescue",
                "archives",
                "digitization",
                "citizen-science",
                "hacktoberfest",
                "climate",
                "community",
                "science"
              ],
              "has_wiki": true,
              "homepage": "https://draw.geog.mcgill.ca",
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://draw.geog.mcgill.ca",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "9 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 53,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 58,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "11 out of 17 merged PRs checked by a CI test -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 1/13 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 7 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "13 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 6",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "113 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "at_risk",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 372 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 372
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 32,
            "inputs": {
              "source": "osv",
              "advisories": 115,
              "affected_packages": 29,
              "assessed_packages": 372,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 3, high 16, moderate 8, low 2",
              "direct_affected_packages": 5
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "5 affected: underscore 1.8.3 (critical 9.8), axios 1.13.6 (high 8.7), lodash 4.17.23 (high 8.1), +2 more",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 5,
                      "packages": "underscore 1.8.3 (critical 9.8), axios 1.13.6 (high 8.7), lodash 4.17.23 (high 8.1)"
                    }
                  },
                  {
                    "code": "advisories_affected_more",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "5 advisory-carrying package(s) unaddressed past 90 days; oldest published 1908 days ago",
                "points": 20,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 5,
                      "oldest": 1908
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "exceptional",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 372,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 6
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "weak",
        "name": "AI Readiness",
        "value": 44,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 28,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.532,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "50 of 94 human commits state their intent (structured subject or explanatory body)",
                "points": 28.4,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 50,
                      "sampled": 94
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Gemfile.lock",
                "yarn.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0.06
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".rubocop.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".rubocop.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "6 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 6,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "JavaScript",
              "largest_source_bytes": 167184,
              "source_files_sampled": 292,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "JavaScript without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "JavaScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/292 source files over 60KB",
                "points": 54.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 292,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "network-service",
        "web-ui"
      ],
      "scores": {
        "web-ui": 4,
        "network-service": 4
      },
      "primary": "network-service",
      "evidence": [
        {
          "tier": "dependencies",
          "label": "network-service",
          "source": "dep:rails",
          "weight": 4
        },
        {
          "tier": "dependencies",
          "label": "web-ui",
          "source": "dep:vue",
          "weight": 4
        }
      ],
      "artifacts": [],
      "confidence": "low",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": false
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-28T09:27:30.494409Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/o/open-data-rescue/climate-data-rescue.svg",
  "full_name": "open-data-rescue/climate-data-rescue",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v2.3.1, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistiken.