{"id":304176,"name":"CSA Admin","description":"Offers you a wide range of features specifically developed for the needs of Community Supported Agriculture.","url":"https://github.com/csa-admin-org/csa-admin","last_synced_at":"2026-04-30T14:04:11.350Z","repository":{"id":39341782,"uuid":"79675934","full_name":"csa-admin-org/csa-admin","owner":"csa-admin-org","description":"Web application to manage CSA (Community Supported Agriculture), ACP (Agriculture Contractuelle de Proximité) or Solawi (Solidarische Landwirtschaft) organizations.","archived":false,"fork":false,"pushed_at":"2026-03-28T08:41:59.000Z","size":37654,"stargazers_count":73,"open_issues_count":0,"forks_count":19,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-28T23:02:53.411Z","etag":null,"topics":["acp","csa","managment","rails","ruby","solawi"],"latest_commit_sha":null,"homepage":"https://csa-admin.org","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csa-admin-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2017-01-21T22:08:39.000Z","updated_at":"2026-03-28T08:42:02.000Z","dependencies_parsed_at":"2025-12-24T01:01:13.689Z","dependency_job_id":"c409a6c9-c01a-4c99-8115-b13130735c4e","html_url":"https://github.com/csa-admin-org/csa-admin","commit_stats":null,"previous_names":["csa-admin-org/csa-admin","acp-admin/acp-admin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/csa-admin-org/csa-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csa-admin-org","download_url":"https://codeload.github.com/csa-admin-org/csa-admin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"csa-admin-org","name":"CSA Admin","uuid":"174861785","kind":"organization","description":"Web application to administrate CSA (Community Supported Agriculture)","email":"info@csa-admin.org","website":"https://csa-admin.org","location":"Switzerland","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/174861785?v=4","repositories_count":1,"last_synced_at":"2024-09-07T09:58:16.975Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/csa-admin-org","funding_links":[],"total_stars":37,"followers":0,"following":0,"created_at":"2024-09-07T09:58:17.683Z","updated_at":"2024-09-07T09:58:17.683Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csa-admin-org","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csa-admin-org/repositories"},"packages":[],"commits":{"id":6384046,"full_name":"csa-admin-org/csa-admin","default_branch":"master","total_commits":4231,"total_committers":7,"total_bot_commits":10,"total_bot_committers":1,"mean_commits":604.4285714285714,"dds":0.006854171590640501,"past_year_total_commits":946,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":946.0,"past_year_dds":0.0,"last_synced_at":"2026-04-11T14:50:20.871Z","last_synced_commit":"73eebc14c52265915f4f1b37854201909a5588fb","created_at":"2024-11-20T00:02:01.960Z","updated_at":"2026-04-11T14:50:15.244Z","committers":[{"name":"Thibaud Guillaume-Gentil","email":"thibaud@thibaud.gg","login":"thibaudgg","count":4202},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":10},{"name":"Moritz Orbach","email":"solawi@apfelboymchen.net","login":null,"count":8},{"name":"videolmo","email":"80804563+videolmo","login":"videolmo","count":4},{"name":"Manuel Rast","email":"manuel.rast@immerda.ch","login":"mrast","count":4},{"name":"Fred Radeff","email":"fradeff@akademia.ch","login":null,"count":2},{"name":"Olivier Amblet","email":"olivier.amblet@pix4d.com","login":"oliamb","count":1}],"past_year_committers":[{"name":"Thibaud Guillaume-Gentil","email":"thibaud@thibaud.gg","login":"thibaudgg","count":946}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-15T00:00:09.512Z","repositories_count":6213593,"commits_count":903370865,"contributors_count":34924174,"owners_count":1144562,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"csa-admin-org/csa-admin","html_url":"https://github.com/csa-admin-org/csa-admin","last_synced_at":"2026-03-07T13:00:48.638Z","status":"active","issues_count":74,"pull_requests_count":54,"avg_time_to_close_issue":8524138.954545455,"avg_time_to_close_pull_request":471733.4716981132,"issues_closed_count":66,"pull_requests_closed_count":53,"pull_request_authors_count":6,"issue_authors_count":8,"avg_comments_per_issue":1.472972972972973,"avg_comments_per_pull_request":0.5,"merged_pull_requests_count":30,"bot_issues_count":0,"bot_pull_requests_count":32,"past_year_issues_count":11,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":4009674.285714286,"past_year_avg_time_to_close_pull_request":2195810.5,"past_year_issues_closed_count":7,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":1.0909090909090908,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2024-11-20T00:02:04.281Z","updated_at":"2026-03-07T13:00:48.638Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/csa-admin-org%2Fcsa-admin/issues","issue_labels_count":{"Cocagne":7,"Lumière des Champs":3,"TaPatate!":3,"P2R":2,"Touvière":2,"CulturesLocales":1,"Les Paniers de la Mule":1,"AlpGrava":1,"Potagers de Gaia":1,"Rage de Vert":1,"Fairdura":1,"Grundnahrig":1},"pull_request_labels_count":{"ruby":6,"dependencies":6},"issue_author_associations_count":{"MEMBER":62,"NONE":11,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":39,"MEMBER":13,"NONE":2},"issue_authors":{"thibaudgg":62,"NealDill":3,"secretariatldc":3,"PatriciaCocagne":2,"leokraemer":1,"oliamb":1,"Alex77825":1,"WildeRauke":1},"pull_request_authors":{"dependabot[bot]":32,"thibaudgg":13,"videolmo":4,"zpartakov":2,"mrast":2,"oliamb":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-15T00:00:09.535Z","repositories_count":14269060,"issues_count":34630327,"pull_requests_count":113269358,"authors_count":11234946,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"MEMBER":5,"NONE":4},"past_year_pull_request_author_associations_count":{"MEMBER":2},"past_year_issue_authors":{"thibaudgg":5,"NealDill":3,"leokraemer":1},"past_year_pull_request_authors":{"thibaudgg":2},"maintainers":[{"login":"thibaudgg","count":75,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/thibaudgg"}],"active_maintainers":[{"login":"thibaudgg","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/thibaudgg"}]},"events":{"total":{"DeleteEvent":5,"PullRequestEvent":6,"ForkEvent":6,"IssuesEvent":45,"WatchEvent":23,"IssueCommentEvent":38,"PushEvent":639,"PullRequestReviewCommentEvent":3,"CreateEvent":6},"last_year":{"DeleteEvent":1,"PullRequestEvent":2,"ForkEvent":2,"IssuesEvent":17,"WatchEvent":11,"IssueCommentEvent":23,"PushEvent":317,"PullRequestReviewCommentEvent":3,"CreateEvent":2}},"keywords":["acp","csa","managment","rails","ruby","solawi"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2023-02-18T15:46:04.643Z","updated_at":"2023-02-18T15:46:04.643Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/.github/workflows/tests.yml","dependencies":[{"id":7764502649,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7764502650,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7764502651,"package_name":"zcong1993/setup-timezone","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7764502653,"package_name":"postgres","ecosystem":"actions","requirements":"14.2","direct":true,"kind":"docker","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile","sha":null,"kind":"manifest","created_at":"2022-08-24T05:00:23.861Z","updated_at":"2022-08-24T05:00:23.861Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/Gemfile","dependencies":[{"id":2461201115,"package_name":"rails","ecosystem":"rubygems","requirements":"~\u003e 7.0.3","direct":true,"kind":"runtime","optional":false},{"id":2461201116,"package_name":"bootsnap","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201117,"package_name":"pg","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201118,"package_name":"puma","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201119,"package_name":"lograge","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201120,"package_name":"bcrypt","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201121,"package_name":"date_validator","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201122,"package_name":"i18n","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201123,"package_name":"i18n-backend-side_by_side","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201124,"package_name":"rails-i18n","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201125,"package_name":"rack-status","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201126,"package_name":"rack-cors","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201127,"package_name":"phony_rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201128,"package_name":"tod","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201129,"package_name":"activeadmin","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201130,"package_name":"sprockets-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201131,"package_name":"cancancan","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201132,"package_name":"simple_form","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201133,"package_name":"inline_svg","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201134,"package_name":"slim","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201135,"package_name":"turbolinks","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201136,"package_name":"importmap-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201137,"package_name":"turbo-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201138,"package_name":"stimulus-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201139,"package_name":"tailwindcss-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201140,"package_name":"invisible_captcha","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201141,"package_name":"cld","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201142,"package_name":"sidekiq","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201143,"package_name":"sidekiq-scheduler","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201144,"package_name":"faraday","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201145,"package_name":"faraday-cookie_jar","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201146,"package_name":"gibbon","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201147,"package_name":"icalendar","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201148,"package_name":"image_processing","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201149,"package_name":"mini_magick","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201150,"package_name":"prawn","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201151,"package_name":"prawn-table","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201152,"package_name":"public_suffix","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201153,"package_name":"rubyXL","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201154,"package_name":"rexml","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201155,"package_name":"postmark-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201156,"package_name":"premailer-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201157,"package_name":"liquid","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201158,"package_name":"camt_parser","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201159,"package_name":"epics","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201160,"package_name":"rqrcode","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201161,"package_name":"countries","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201162,"package_name":"sentry-ruby","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201163,"package_name":"sentry-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201164,"package_name":"sentry-sidekiq","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201165,"package_name":"kramdown","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201166,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201167,"package_name":"aws-sdk-s3","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201168,"package_name":"redis","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201169,"package_name":"barnes","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201170,"package_name":"matrix","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"runtime","optional":false},{"id":2461201171,"package_name":"dotenv-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201172,"package_name":"byebug","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201173,"package_name":"pdf-inspector","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201174,"package_name":"rspec-rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201175,"package_name":"faker","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201176,"package_name":"web-console","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201177,"package_name":"listen","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201178,"package_name":"bullet","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201179,"package_name":"letter_opener","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201180,"package_name":"launchy","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201181,"package_name":"factory_bot_rails","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201182,"package_name":"capybara","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201183,"package_name":"capybara-email","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false},{"id":2461201184,"package_name":"super_diff","ecosystem":"rubygems","requirements":"\u003e= 0","direct":true,"kind":"development","optional":false}]},{"ecosystem":"rubygems","filepath":"Gemfile.lock","sha":null,"kind":"lockfile","created_at":"2022-08-24T05:00:24.001Z","updated_at":"2022-08-24T05:00:24.001Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/Gemfile.lock","dependencies":[{"id":2461202177,"package_name":"epics","ecosystem":"rubygems","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false},{"id":2461202178,"package_name":"Ascii85","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":2461202179,"package_name":"actioncable","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202180,"package_name":"actionmailbox","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202181,"package_name":"actionmailer","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202182,"package_name":"actionpack","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202183,"package_name":"actiontext","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202184,"package_name":"actionview","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202185,"package_name":"activeadmin","ecosystem":"rubygems","requirements":"2.13.1","direct":false,"kind":"runtime","optional":false},{"id":2461202186,"package_name":"activejob","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202187,"package_name":"activemodel","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202188,"package_name":"activerecord","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202189,"package_name":"activestorage","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202190,"package_name":"activesupport","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202191,"package_name":"addressable","ecosystem":"rubygems","requirements":"2.8.0","direct":false,"kind":"runtime","optional":false},{"id":2461202192,"package_name":"afm","ecosystem":"rubygems","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":2461202193,"package_name":"arbre","ecosystem":"rubygems","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":2461202194,"package_name":"attr_extras","ecosystem":"rubygems","requirements":"6.2.5","direct":false,"kind":"runtime","optional":false},{"id":2461202195,"package_name":"aws-eventstream","ecosystem":"rubygems","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202196,"package_name":"aws-partitions","ecosystem":"rubygems","requirements":"1.619.0","direct":false,"kind":"runtime","optional":false},{"id":2461202197,"package_name":"aws-sdk-core","ecosystem":"rubygems","requirements":"3.132.0","direct":false,"kind":"runtime","optional":false},{"id":2461202198,"package_name":"aws-sdk-kms","ecosystem":"rubygems","requirements":"1.58.0","direct":false,"kind":"runtime","optional":false},{"id":2461202199,"package_name":"aws-sdk-s3","ecosystem":"rubygems","requirements":"1.114.0","direct":false,"kind":"runtime","optional":false},{"id":2461202200,"package_name":"aws-sigv4","ecosystem":"rubygems","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":2461202201,"package_name":"barnes","ecosystem":"rubygems","requirements":"0.0.9","direct":false,"kind":"runtime","optional":false},{"id":2461202202,"package_name":"bcrypt","ecosystem":"rubygems","requirements":"3.1.18","direct":false,"kind":"runtime","optional":false},{"id":2461202203,"package_name":"bindex","ecosystem":"rubygems","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":2461202204,"package_name":"bootsnap","ecosystem":"rubygems","requirements":"1.13.0","direct":false,"kind":"runtime","optional":false},{"id":2461202205,"package_name":"builder","ecosystem":"rubygems","requirements":"3.2.4","direct":false,"kind":"runtime","optional":false},{"id":2461202206,"package_name":"bullet","ecosystem":"rubygems","requirements":"7.0.3","direct":false,"kind":"runtime","optional":false},{"id":2461202207,"package_name":"byebug","ecosystem":"rubygems","requirements":"11.1.3","direct":false,"kind":"runtime","optional":false},{"id":2461202208,"package_name":"camt_parser","ecosystem":"rubygems","requirements":"2.12.0","direct":false,"kind":"runtime","optional":false},{"id":2461202209,"package_name":"cancancan","ecosystem":"rubygems","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":2461202210,"package_name":"capybara","ecosystem":"rubygems","requirements":"3.37.1","direct":false,"kind":"runtime","optional":false},{"id":2461202211,"package_name":"capybara-email","ecosystem":"rubygems","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":2461202212,"package_name":"chunky_png","ecosystem":"rubygems","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":2461202213,"package_name":"cld","ecosystem":"rubygems","requirements":"0.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202214,"package_name":"concurrent-ruby","ecosystem":"rubygems","requirements":"1.1.10","direct":false,"kind":"runtime","optional":false},{"id":2461202215,"package_name":"connection_pool","ecosystem":"rubygems","requirements":"2.2.5","direct":false,"kind":"runtime","optional":false},{"id":2461202216,"package_name":"countries","ecosystem":"rubygems","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":2461202217,"package_name":"crass","ecosystem":"rubygems","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":2461202218,"package_name":"css_parser","ecosystem":"rubygems","requirements":"1.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202219,"package_name":"date_validator","ecosystem":"rubygems","requirements":"0.12.0","direct":false,"kind":"runtime","optional":false},{"id":2461202220,"package_name":"diff-lcs","ecosystem":"rubygems","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":2461202221,"package_name":"digest","ecosystem":"rubygems","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":2461202222,"package_name":"domain_name","ecosystem":"rubygems","requirements":"0.5.20190701","direct":false,"kind":"runtime","optional":false},{"id":2461202223,"package_name":"dotenv","ecosystem":"rubygems","requirements":"2.8.1","direct":false,"kind":"runtime","optional":false},{"id":2461202224,"package_name":"dotenv-rails","ecosystem":"rubygems","requirements":"2.8.1","direct":false,"kind":"runtime","optional":false},{"id":2461202225,"package_name":"erubi","ecosystem":"rubygems","requirements":"1.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202226,"package_name":"et-orbi","ecosystem":"rubygems","requirements":"1.2.7","direct":false,"kind":"runtime","optional":false},{"id":2461202227,"package_name":"factory_bot","ecosystem":"rubygems","requirements":"6.2.1","direct":false,"kind":"runtime","optional":false},{"id":2461202228,"package_name":"factory_bot_rails","ecosystem":"rubygems","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202229,"package_name":"faker","ecosystem":"rubygems","requirements":"2.22.0","direct":false,"kind":"runtime","optional":false},{"id":2461202230,"package_name":"faraday","ecosystem":"rubygems","requirements":"2.5.2","direct":false,"kind":"runtime","optional":false},{"id":2461202231,"package_name":"faraday-cookie_jar","ecosystem":"rubygems","requirements":"0.0.7","direct":false,"kind":"runtime","optional":false},{"id":2461202232,"package_name":"faraday-net_http","ecosystem":"rubygems","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":2461202233,"package_name":"ffi","ecosystem":"rubygems","requirements":"1.15.5","direct":false,"kind":"runtime","optional":false},{"id":2461202234,"package_name":"formtastic","ecosystem":"rubygems","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":2461202235,"package_name":"formtastic_i18n","ecosystem":"rubygems","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":2461202236,"package_name":"fugit","ecosystem":"rubygems","requirements":"1.5.3","direct":false,"kind":"runtime","optional":false},{"id":2461202237,"package_name":"gibbon","ecosystem":"rubygems","requirements":"3.4.4","direct":false,"kind":"runtime","optional":false},{"id":2461202238,"package_name":"globalid","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":2461202239,"package_name":"has_scope","ecosystem":"rubygems","requirements":"0.8.0","direct":false,"kind":"runtime","optional":false},{"id":2461202240,"package_name":"hashery","ecosystem":"rubygems","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":2461202241,"package_name":"htmlentities","ecosystem":"rubygems","requirements":"4.3.4","direct":false,"kind":"runtime","optional":false},{"id":2461202242,"package_name":"http-cookie","ecosystem":"rubygems","requirements":"1.0.5","direct":false,"kind":"runtime","optional":false},{"id":2461202243,"package_name":"i18n","ecosystem":"rubygems","requirements":"1.12.0","direct":false,"kind":"runtime","optional":false},{"id":2461202244,"package_name":"i18n-backend-side_by_side","ecosystem":"rubygems","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202245,"package_name":"icalendar","ecosystem":"rubygems","requirements":"2.8.0","direct":false,"kind":"runtime","optional":false},{"id":2461202246,"package_name":"ice_cube","ecosystem":"rubygems","requirements":"0.16.4","direct":false,"kind":"runtime","optional":false},{"id":2461202247,"package_name":"image_processing","ecosystem":"rubygems","requirements":"1.12.2","direct":false,"kind":"runtime","optional":false},{"id":2461202248,"package_name":"importmap-rails","ecosystem":"rubygems","requirements":"1.1.5","direct":false,"kind":"runtime","optional":false},{"id":2461202249,"package_name":"inherited_resources","ecosystem":"rubygems","requirements":"1.13.1","direct":false,"kind":"runtime","optional":false},{"id":2461202250,"package_name":"inline_svg","ecosystem":"rubygems","requirements":"1.8.0","direct":false,"kind":"runtime","optional":false},{"id":2461202251,"package_name":"invisible_captcha","ecosystem":"rubygems","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":2461202252,"package_name":"jmespath","ecosystem":"rubygems","requirements":"1.6.1","direct":false,"kind":"runtime","optional":false},{"id":2461202253,"package_name":"jquery-rails","ecosystem":"rubygems","requirements":"4.5.0","direct":false,"kind":"runtime","optional":false},{"id":2461202254,"package_name":"json","ecosystem":"rubygems","requirements":"2.6.2","direct":false,"kind":"runtime","optional":false},{"id":2461202255,"package_name":"kaminari","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":2461202256,"package_name":"kaminari-actionview","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":2461202257,"package_name":"kaminari-activerecord","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":2461202258,"package_name":"kaminari-core","ecosystem":"rubygems","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":2461202259,"package_name":"kramdown","ecosystem":"rubygems","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":2461202260,"package_name":"launchy","ecosystem":"rubygems","requirements":"2.5.0","direct":false,"kind":"runtime","optional":false},{"id":2461202261,"package_name":"letter_opener","ecosystem":"rubygems","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false},{"id":2461202262,"package_name":"liquid","ecosystem":"rubygems","requirements":"5.4.0","direct":false,"kind":"runtime","optional":false},{"id":2461202263,"package_name":"listen","ecosystem":"rubygems","requirements":"3.7.1","direct":false,"kind":"runtime","optional":false},{"id":2461202264,"package_name":"lograge","ecosystem":"rubygems","requirements":"0.12.0","direct":false,"kind":"runtime","optional":false},{"id":2461202265,"package_name":"loofah","ecosystem":"rubygems","requirements":"2.18.0","direct":false,"kind":"runtime","optional":false},{"id":2461202266,"package_name":"mail","ecosystem":"rubygems","requirements":"2.7.1","direct":false,"kind":"runtime","optional":false},{"id":2461202267,"package_name":"marcel","ecosystem":"rubygems","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":2461202268,"package_name":"matrix","ecosystem":"rubygems","requirements":"0.4.2","direct":false,"kind":"runtime","optional":false},{"id":2461202269,"package_name":"method_source","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":2461202270,"package_name":"mini_magick","ecosystem":"rubygems","requirements":"4.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202271,"package_name":"mini_mime","ecosystem":"rubygems","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":2461202272,"package_name":"mini_portile2","ecosystem":"rubygems","requirements":"2.8.0","direct":false,"kind":"runtime","optional":false},{"id":2461202273,"package_name":"minitest","ecosystem":"rubygems","requirements":"5.16.3","direct":false,"kind":"runtime","optional":false},{"id":2461202274,"package_name":"msgpack","ecosystem":"rubygems","requirements":"1.5.4","direct":false,"kind":"runtime","optional":false},{"id":2461202275,"package_name":"multi_json","ecosystem":"rubygems","requirements":"1.15.0","direct":false,"kind":"runtime","optional":false},{"id":2461202276,"package_name":"net-imap","ecosystem":"rubygems","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":2461202277,"package_name":"net-pop","ecosystem":"rubygems","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":2461202278,"package_name":"net-protocol","ecosystem":"rubygems","requirements":"0.1.3","direct":false,"kind":"runtime","optional":false},{"id":2461202279,"package_name":"net-smtp","ecosystem":"rubygems","requirements":"0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202280,"package_name":"nio4r","ecosystem":"rubygems","requirements":"2.5.8","direct":false,"kind":"runtime","optional":false},{"id":2461202281,"package_name":"nokogiri","ecosystem":"rubygems","requirements":"1.13.8","direct":false,"kind":"runtime","optional":false},{"id":2461202282,"package_name":"optimist","ecosystem":"rubygems","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":2461202283,"package_name":"patience_diff","ecosystem":"rubygems","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202284,"package_name":"pdf-core","ecosystem":"rubygems","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":2461202285,"package_name":"pdf-inspector","ecosystem":"rubygems","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":2461202286,"package_name":"pdf-reader","ecosystem":"rubygems","requirements":"2.10.0","direct":false,"kind":"runtime","optional":false},{"id":2461202287,"package_name":"pg","ecosystem":"rubygems","requirements":"1.4.3","direct":false,"kind":"runtime","optional":false},{"id":2461202288,"package_name":"phony","ecosystem":"rubygems","requirements":"2.20.0","direct":false,"kind":"runtime","optional":false},{"id":2461202289,"package_name":"phony_rails","ecosystem":"rubygems","requirements":"0.15.0","direct":false,"kind":"runtime","optional":false},{"id":2461202290,"package_name":"postmark","ecosystem":"rubygems","requirements":"1.22.1","direct":false,"kind":"runtime","optional":false},{"id":2461202291,"package_name":"postmark-rails","ecosystem":"rubygems","requirements":"0.22.1","direct":false,"kind":"runtime","optional":false},{"id":2461202292,"package_name":"prawn","ecosystem":"rubygems","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":2461202293,"package_name":"prawn-table","ecosystem":"rubygems","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":2461202294,"package_name":"premailer","ecosystem":"rubygems","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":2461202295,"package_name":"premailer-rails","ecosystem":"rubygems","requirements":"1.11.1","direct":false,"kind":"runtime","optional":false},{"id":2461202296,"package_name":"public_suffix","ecosystem":"rubygems","requirements":"4.0.7","direct":false,"kind":"runtime","optional":false},{"id":2461202297,"package_name":"puma","ecosystem":"rubygems","requirements":"5.6.4","direct":false,"kind":"runtime","optional":false},{"id":2461202298,"package_name":"raabro","ecosystem":"rubygems","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":2461202299,"package_name":"racc","ecosystem":"rubygems","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":2461202300,"package_name":"rack","ecosystem":"rubygems","requirements":"2.2.4","direct":false,"kind":"runtime","optional":false},{"id":2461202301,"package_name":"rack-cors","ecosystem":"rubygems","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":2461202302,"package_name":"rack-status","ecosystem":"rubygems","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":2461202303,"package_name":"rack-test","ecosystem":"rubygems","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":2461202304,"package_name":"rails","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202305,"package_name":"rails-dom-testing","ecosystem":"rubygems","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":2461202306,"package_name":"rails-html-sanitizer","ecosystem":"rubygems","requirements":"1.4.3","direct":false,"kind":"runtime","optional":false},{"id":2461202307,"package_name":"rails-i18n","ecosystem":"rubygems","requirements":"7.0.5","direct":false,"kind":"runtime","optional":false},{"id":2461202308,"package_name":"railties","ecosystem":"rubygems","requirements":"7.0.3.1","direct":false,"kind":"runtime","optional":false},{"id":2461202309,"package_name":"rake","ecosystem":"rubygems","requirements":"13.0.6","direct":false,"kind":"runtime","optional":false},{"id":2461202310,"package_name":"ransack","ecosystem":"rubygems","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":2461202311,"package_name":"rb-fsevent","ecosystem":"rubygems","requirements":"0.11.1","direct":false,"kind":"runtime","optional":false},{"id":2461202312,"package_name":"rb-inotify","ecosystem":"rubygems","requirements":"0.10.1","direct":false,"kind":"runtime","optional":false},{"id":2461202313,"package_name":"redis","ecosystem":"rubygems","requirements":"4.7.1","direct":false,"kind":"runtime","optional":false},{"id":2461202314,"package_name":"regexp_parser","ecosystem":"rubygems","requirements":"2.5.0","direct":false,"kind":"runtime","optional":false},{"id":2461202315,"package_name":"request_store","ecosystem":"rubygems","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":2461202316,"package_name":"responders","ecosystem":"rubygems","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":2461202317,"package_name":"rexml","ecosystem":"rubygems","requirements":"3.2.5","direct":false,"kind":"runtime","optional":false},{"id":2461202318,"package_name":"rqrcode","ecosystem":"rubygems","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":2461202319,"package_name":"rqrcode_core","ecosystem":"rubygems","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202320,"package_name":"rspec-core","ecosystem":"rubygems","requirements":"3.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202321,"package_name":"rspec-expectations","ecosystem":"rubygems","requirements":"3.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202322,"package_name":"rspec-mocks","ecosystem":"rubygems","requirements":"3.11.1","direct":false,"kind":"runtime","optional":false},{"id":2461202323,"package_name":"rspec-rails","ecosystem":"rubygems","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":2461202324,"package_name":"rspec-support","ecosystem":"rubygems","requirements":"3.11.0","direct":false,"kind":"runtime","optional":false},{"id":2461202325,"package_name":"ruby-rc4","ecosystem":"rubygems","requirements":"0.1.5","direct":false,"kind":"runtime","optional":false},{"id":2461202326,"package_name":"ruby-vips","ecosystem":"rubygems","requirements":"2.1.4","direct":false,"kind":"runtime","optional":false},{"id":2461202327,"package_name":"ruby2_keywords","ecosystem":"rubygems","requirements":"0.0.5","direct":false,"kind":"runtime","optional":false},{"id":2461202328,"package_name":"rubyXL","ecosystem":"rubygems","requirements":"3.4.25","direct":false,"kind":"runtime","optional":false},{"id":2461202329,"package_name":"rubyzip","ecosystem":"rubygems","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":2461202330,"package_name":"rufus-scheduler","ecosystem":"rubygems","requirements":"3.8.2","direct":false,"kind":"runtime","optional":false},{"id":2461202331,"package_name":"sentry-rails","ecosystem":"rubygems","requirements":"5.4.2","direct":false,"kind":"runtime","optional":false},{"id":2461202332,"package_name":"sentry-ruby","ecosystem":"rubygems","requirements":"5.4.2","direct":false,"kind":"runtime","optional":false},{"id":2461202333,"package_name":"sentry-sidekiq","ecosystem":"rubygems","requirements":"5.4.2","direct":false,"kind":"runtime","optional":false},{"id":2461202334,"package_name":"sidekiq","ecosystem":"rubygems","requirements":"6.5.4","direct":false,"kind":"runtime","optional":false},{"id":2461202335,"package_name":"sidekiq-scheduler","ecosystem":"rubygems","requirements":"4.0.2","direct":false,"kind":"runtime","optional":false},{"id":2461202336,"package_name":"simple_form","ecosystem":"rubygems","requirements":"5.1.0","direct":false,"kind":"runtime","optional":false},{"id":2461202337,"package_name":"sixarm_ruby_unaccent","ecosystem":"rubygems","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202338,"package_name":"slim","ecosystem":"rubygems","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":2461202339,"package_name":"sprockets","ecosystem":"rubygems","requirements":"4.1.1","direct":false,"kind":"runtime","optional":false},{"id":2461202340,"package_name":"sprockets-rails","ecosystem":"rubygems","requirements":"3.4.2","direct":false,"kind":"runtime","optional":false},{"id":2461202341,"package_name":"statsd-ruby","ecosystem":"rubygems","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":2461202342,"package_name":"stimulus-rails","ecosystem":"rubygems","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":2461202343,"package_name":"strscan","ecosystem":"rubygems","requirements":"3.0.4","direct":false,"kind":"runtime","optional":false},{"id":2461202344,"package_name":"super_diff","ecosystem":"rubygems","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":2461202345,"package_name":"tailwindcss-rails","ecosystem":"rubygems","requirements":"2.0.12","direct":false,"kind":"runtime","optional":false},{"id":2461202346,"package_name":"temple","ecosystem":"rubygems","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":2461202347,"package_name":"thor","ecosystem":"rubygems","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":2461202348,"package_name":"tilt","ecosystem":"rubygems","requirements":"2.0.11","direct":false,"kind":"runtime","optional":false},{"id":2461202349,"package_name":"timeout","ecosystem":"rubygems","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":2461202350,"package_name":"tod","ecosystem":"rubygems","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":2461202351,"package_name":"ttfunk","ecosystem":"rubygems","requirements":"1.7.0","direct":false,"kind":"runtime","optional":false},{"id":2461202352,"package_name":"turbo-rails","ecosystem":"rubygems","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":2461202353,"package_name":"turbolinks","ecosystem":"rubygems","requirements":"5.2.1","direct":false,"kind":"runtime","optional":false},{"id":2461202354,"package_name":"turbolinks-source","ecosystem":"rubygems","requirements":"5.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202355,"package_name":"tzinfo","ecosystem":"rubygems","requirements":"2.0.5","direct":false,"kind":"runtime","optional":false},{"id":2461202356,"package_name":"unf","ecosystem":"rubygems","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":2461202357,"package_name":"unf_ext","ecosystem":"rubygems","requirements":"0.0.8.2","direct":false,"kind":"runtime","optional":false},{"id":2461202358,"package_name":"uniform_notifier","ecosystem":"rubygems","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":2461202359,"package_name":"web-console","ecosystem":"rubygems","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202360,"package_name":"websocket-driver","ecosystem":"rubygems","requirements":"0.7.5","direct":false,"kind":"runtime","optional":false},{"id":2461202361,"package_name":"websocket-extensions","ecosystem":"rubygems","requirements":"0.1.5","direct":false,"kind":"runtime","optional":false},{"id":2461202362,"package_name":"xpath","ecosystem":"rubygems","requirements":"3.2.0","direct":false,"kind":"runtime","optional":false},{"id":2461202363,"package_name":"zeitwerk","ecosystem":"rubygems","requirements":"2.6.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/lint.yml","sha":null,"kind":"manifest","created_at":"2025-12-24T01:01:05.213Z","updated_at":"2025-12-24T01:01:05.213Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/.github/workflows/lint.yml","dependencies":[{"id":25777006220,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25777006221,"package_name":"awalsh128/cache-apt-pkgs-action","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25777006222,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25777006223,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v6","direct":true,"kind":"composite","optional":false},{"id":25777006224,"package_name":"speedshop/ids_must_be_indexed","ecosystem":"actions","requirements":"v1.2.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/security.yml","sha":null,"kind":"manifest","created_at":"2025-12-24T01:01:07.233Z","updated_at":"2025-12-24T01:01:07.233Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/.github/workflows/security.yml","dependencies":[{"id":25777006225,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25777006226,"package_name":"ruby/setup-ruby","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25777006227,"package_name":"github/codeql-action/upload-sarif","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2025-12-24T01:01:08.076Z","updated_at":"2025-12-24T01:01:08.076Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/Dockerfile","dependencies":[{"id":25777006228,"package_name":"docker.io/library/ruby","ecosystem":"docker","requirements":"$RUBY_VERSION-slim","direct":true,"kind":"build","optional":false},{"id":25777006229,"package_name":"base","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"npm","filepath":"package-lock.json","sha":null,"kind":"lockfile","created_at":"2025-12-24T01:01:10.502Z","updated_at":"2025-12-24T01:01:10.502Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/package-lock.json","dependencies":[{"id":25777006230,"package_name":"@herb-tools/config","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006239,"package_name":"@herb-tools/core","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006240,"package_name":"@herb-tools/formatter","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006241,"package_name":"@herb-tools/highlighter","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006242,"package_name":"@herb-tools/linter","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006243,"package_name":"@herb-tools/node-wasm","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006244,"package_name":"@herb-tools/printer","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006245,"package_name":"@herb-tools/rewriter","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006246,"package_name":"@herb-tools/tailwind-class-sorter","ecosystem":"npm","requirements":"0.8.4","direct":false,"kind":"development","optional":false},{"id":25777006247,"package_name":"@isaacs/balanced-match","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":25777006248,"package_name":"@isaacs/brace-expansion","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":25777006249,"package_name":"callsites","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":25777006250,"package_name":"clear-module","ecosystem":"npm","requirements":"4.1.2","direct":false,"kind":"development","optional":false},{"id":25777006268,"package_name":"escalade","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"development","optional":false},{"id":25777006269,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":25777006270,"package_name":"glob","ecosystem":"npm","requirements":"13.0.0","direct":false,"kind":"development","optional":false},{"id":25777006271,"package_name":"hasown","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":25777006272,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.16.1","direct":false,"kind":"development","optional":false},{"id":25777006273,"package_name":"jiti","ecosystem":"npm","requirements":"2.6.1","direct":false,"kind":"development","optional":false},{"id":25777006274,"package_name":"lru-cache","ecosystem":"npm","requirements":"11.2.4","direct":false,"kind":"development","optional":false},{"id":25777006275,"package_name":"minimatch","ecosystem":"npm","requirements":"10.1.1","direct":false,"kind":"development","optional":false},{"id":25777006276,"package_name":"minipass","ecosystem":"npm","requirements":"7.1.2","direct":false,"kind":"development","optional":false},{"id":25777006277,"package_name":"nanoid","ecosystem":"npm","requirements":"3.3.11","direct":false,"kind":"development","optional":false},{"id":25777006278,"package_name":"parent-module","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":25777006279,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"development","optional":false},{"id":25777006280,"package_name":"path-scurry","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":25777006281,"package_name":"picocolors","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":25777006282,"package_name":"pify","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":25777006283,"package_name":"postcss","ecosystem":"npm","requirements":"8.5.6","direct":false,"kind":"development","optional":false},{"id":25777006284,"package_name":"postcss-import","ecosystem":"npm","requirements":"16.1.1","direct":false,"kind":"development","optional":false},{"id":25777006285,"package_name":"postcss-value-parser","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"development","optional":false},{"id":25777006286,"package_name":"prettier","ecosystem":"npm","requirements":"3.7.4","direct":false,"kind":"development","optional":false},{"id":25777006287,"package_name":"prettier-plugin-tailwindcss","ecosystem":"npm","requirements":"0.6.14","direct":false,"kind":"development","optional":false},{"id":25777006288,"package_name":"read-cache","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":25777006289,"package_name":"resolve","ecosystem":"npm","requirements":"1.22.11","direct":false,"kind":"development","optional":false},{"id":25777006290,"package_name":"resolve-from","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":25777006291,"package_name":"source-map-js","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":25777006292,"package_name":"supports-preserve-symlinks-flag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":25777006293,"package_name":"tailwindcss","ecosystem":"npm","requirements":"4.1.18","direct":false,"kind":"development","optional":false},{"id":25777006294,"package_name":"yaml","ecosystem":"npm","requirements":"2.8.2","direct":false,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"package.json","sha":null,"kind":"manifest","created_at":"2025-12-24T01:01:12.362Z","updated_at":"2025-12-24T01:01:12.362Z","repository_link":"https://github.com/csa-admin-org/csa-admin/blob/master/package.json","dependencies":[{"id":25777006297,"package_name":"@herb-tools/linter","ecosystem":"npm","requirements":"^0.8.2","direct":true,"kind":"development","optional":false},{"id":25777006298,"package_name":"@herb-tools/formatter","ecosystem":"npm","requirements":"^0.8.2","direct":true,"kind":"development","optional":false},{"id":25777006299,"package_name":"prettier","ecosystem":"npm","requirements":"^3.6.2","direct":true,"kind":"development","optional":false},{"id":25777006300,"package_name":"prettier-plugin-tailwindcss","ecosystem":"npm","requirements":"^0.6.14","direct":true,"kind":"development","optional":false}]}],"score":6.236369590203704,"created_at":"2024-11-20T00:02:00.182Z","updated_at":"2026-04-30T14:04:11.478Z","avatar_url":"https://github.com/csa-admin-org.png","language":"Ruby","category":"Consumption","sub_category":"Agriculture and Nutrition","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\u003ca href=\"https://csa-admin.org\"\u003e\n  \u003cimg title=\"CSA/ACP/Solawi Admin logo\" src=\"https://csa-admin.org/images/logo-23671d2e.svg\" width=\"100\"\u003e\n\u003c/a\u003e\n\n# CSA/ACP/Solawi Admin\n\n[![Tests](https://github.com/csa-admin-org/csa-admin/actions/workflows/tests.yml/badge.svg)](https://github.com/csa-admin-org/csa-admin/actions/workflows/tests.yml) [![Security](https://github.com/csa-admin-org/csa-admin/actions/workflows/security.yml/badge.svg)](https://github.com/csa-admin-org/csa-admin/actions/workflows/security.yml)\n\nCSA/ACP/Solawi Admin is a web application to manage Community Supported Agriculture organizations:\n- **CSA** (Community Supported Agriculture)\n- **ACP** (Agriculture Contractuelle de Proximité)\n- **Solawi** (Solidarische Landwirtschaft)\n\nLearn more on [csa-admin.org](https://csa-admin.org).\n\n## Features\n\n- Member management (status, contact information, etc.)\n- Membership management (basket size type, depot location, quantity, deliveries, etc.)\n- Basket complements (delivery frequency, quantity, etc.)\n- Online grocery store for additional product orders\n- Advanced delivery cycle management (every two weeks, winter/summer, etc.)\n- Basket content management (harvest-based quantity calculations, price monitoring, etc.)\n- Bidding rounds for solidarity-based basket pricing (member pledges with min/max bounds)\n- Automatic invoicing:\n  - memberships\n  - membership shares / annual fees\n  - invoice dispatch with reference numbers (QR-Code, SEPA)\n  - automatic payment statement import from bank account (EBICS)\n  - overdue notices\n- Activity participation management with member registration forms\n- Advanced email and built-in newsletters system\n- Multi-language support (**en, fr, de, it, nl**)\n\nNeed a demo or a specific feature? [Contact me](mailto:info@csa-admin.org).\n\n## Organizations\n\nThis application is currently used by [more than 30 organizations](https://csa-admin.org/#organizations) in Switzerland, Germany, and the Netherlands, and manages more than 140,000 basket deliveries per year.\n\n## Technical overview\n\n- Built with Ruby on Rails\n- Multi-tenant architecture:\n  - tenant resolved from request subdomain\n  - one isolated SQLite database per tenant\n- Asynchronous jobs handled by SolidQueue/ActiveJob (SQLite-backed)\n- Transactional emails and newsletters sent via Postmark\n\n## Getting started\n\n1. Clone the repository\n2. Copy `config/tenant.yml.example` to `config/tenant.yml` and update your admin/member hostnames\n3. Install dependencies, prepare and seed databases:\n\n   `bin/setup`\n\n4. Set up local subdomains (recommended: [puma-dev](https://github.com/puma/puma-dev)) to access:\n   - [admin.my-domain.test](https://admin.my-domain.test)\n   - [members.my-domain.test](https://members.my-domain.test)\n\n5. Sign in to [the admin](https://admin.my-domain.test) with your email (for example `admin@my-domain.test`)\n\n## Development\n\nUseful commands:\n\n- Run all tests: `bin/rails test:all`\n- Check linting: `bin/rails lint:check`\n- Auto-fix linting issues: `bin/rails lint:autocorrect`\n\n## Contributing\n\nContributions are welcome.\n\nBefore starting substantial work (new feature, larger refactor), please [contact me](mailto:info@csa-admin.org) first so we can align on scope and implementation.\n\nFor smaller fixes and improvements, feel free to open a pull request.\n\n## Support\n\n- Thibaud Guillaume-Gentil ([info@csa-admin.org](mailto:info@csa-admin.org))\n\nFor demos, support, or custom feature requests, [contact me](mailto:info@csa-admin.org).\n\n## License\n\nCSA/ACP/Solawi Admin is released under the [O’Saasy License](https://osaasy.dev).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["optimize","archiving","transforms","measur","generic","observation","compose","conversion","projection","animals"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/304176","html_url":"https://ost.ecosyste.ms/projects/304176"}