{"id":1092,"name":"openfoodfacts-server","description":"Open Food Facts is a collaborative, free and open database of food products from around the world.","url":"https://github.com/openfoodfacts/openfoodfacts-server","last_synced_at":"2026-08-29T21:35:11.572Z","repository":{"id":37412561,"uuid":"14111770","full_name":"openfoodfacts/openfoodfacts-server","owner":"openfoodfacts","description":"Open Food Facts database, API server and web interface - 🐪🦋 Perl, CSS and JS coders welcome 😊 For helping in Python, see Robotoff or taxonomy-editor","archived":false,"fork":false,"pushed_at":"2026-08-28T17:05:31.000Z","size":2899162,"stargazers_count":1146,"open_issues_count":1793,"forks_count":654,"subscribers_count":31,"default_branch":"main","last_synced_at":"2026-08-28T21:11:14.970Z","etag":null,"topics":["allergens","allergies","crowdsourcing","database","environment","food","food-products","nutrition","perl","recycling"],"latest_commit_sha":null,"homepage":"https://openfoodfacts.github.io/documentation/docs/Product-Opener/api/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openfoodfacts.png","metadata":{"funding":{"patreon":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"open_collective":"openfoodfacts-server","github":"openfoodfacts","custom":"https://donate.openfoodfacts.org"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT","agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2013-11-04T14:23:24.000Z","updated_at":"2026-08-28T15:55:20.000Z","dependencies_parsed_at":"2026-08-21T17:36:28.974Z","dependency_job_id":null,"html_url":"https://github.com/openfoodfacts/openfoodfacts-server","commit_stats":{"total_commits":30923,"total_committers":235,"mean_commits":"131.58723404255318","dds":"0.39055072276299196","last_synced_commit":"c507f2d6d3f77a45ba7630e9a507308fab87ca5a"},"previous_names":[],"tags_count":141,"template":false,"template_full_name":null,"purl":"pkg:github/openfoodfacts/openfoodfacts-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfoodfacts","download_url":"https://codeload.github.com/openfoodfacts/openfoodfacts-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server/sbom","scorecard":{"id":709413,"data":{"date":"2025-08-11","repo":{"name":"github.com/openfoodfacts/openfoodfacts-server","commit":"e0a2c23b5f53dc046558cfad76233c1133e921d7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 17 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/label.yml:21","Warn: no topLevel permission defined: .github/workflows/api-linting.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/container-build.yml:1","Warn: no topLevel permission defined: .github/workflows/container-deploy.yml:1","Warn: no topLevel permission defined: .github/workflows/crowdin-per-language.yml:1","Warn: no topLevel permission defined: .github/workflows/crowdin.yml:1","Warn: no topLevel permission defined: .github/workflows/generate-doc.yml:1","Warn: no topLevel permission defined: .github/workflows/github-projects-ventilation.yml:1","Warn: no topLevel permission defined: .github/workflows/label.yml:1","Warn: no topLevel permission defined: .github/workflows/merge-conflict-autolabel.yml:1","Warn: no topLevel permission defined: .github/workflows/pr_actions.yml:1","Warn: no topLevel permission defined: .github/workflows/pull_request.yml:1","Warn: no topLevel permission defined: .github/workflows/release-please.yml:1","Warn: no topLevel permission defined: .github/workflows/semantic-pr.yml:1","Warn: no topLevel permission defined: .github/workflows/top-issues.yml:1","Warn: no topLevel permission defined: .github/workflows/translation-check.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Affero General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.75.0 not signed: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/239885562","Warn: release artifact v2.74.0 not signed: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/236185656","Warn: release artifact v2.73.1 not signed: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/234454139","Warn: release artifact v2.73.0 not signed: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/231079369","Warn: release artifact v2.72.0 not signed: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/229995779","Warn: release artifact v2.75.0 does not have provenance: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/239885562","Warn: release artifact v2.74.0 does not have provenance: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/236185656","Warn: release artifact v2.73.1 does not have provenance: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/234454139","Warn: release artifact v2.73.0 does not have provenance: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/231079369","Warn: release artifact v2.72.0 does not have provenance: https://api.github.com/repos/openfoodfacts/openfoodfacts-server/releases/229995779"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/container-build.yml:16"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"28 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-crh6-fp67-6883","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-p8pc-3f7w-jr5q","Warn: Project is vulnerable to: GHSA-rmxg-73gg-4p98","Warn: Project is vulnerable to: GHSA-6c3j-c64m-qhgq","Warn: Project is vulnerable to: GHSA-gxr4-xjj5-5px2","Warn: Project is vulnerable to: GHSA-jpcq-cgw6-v4j6","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: PYSEC-2017-83","Warn: Project is vulnerable to: PYSEC-2024-203","Warn: Project is vulnerable to: PYSEC-2024-25","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: a command can only contain words and redirects; encountered (: Dockerfile.frontend:31","Info: Possibly incomplete results: error parsing shell code: \"foo(\" must be followed by ): scripts/obsolete/imports/fleary_michon/import_fleurymichon.sh:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/api-linting.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/api-linting.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/api-linting.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/api-linting.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/api-linting.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/api-linting.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-assign-pr.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/auto-assign-pr.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/container-build.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-build.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-build.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-build.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-build.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:133: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:202: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:218: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:247: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:263: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:280: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:295: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/container-deploy.yml:309: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/container-deploy.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/crowdin-per-language.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/crowdin-per-language.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/crowdin-per-language.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/crowdin-per-language.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/crowdin.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/crowdin.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/crowdin.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/crowdin.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/generate-doc.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/generate-doc.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/generate-doc.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/generate-doc.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:118: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:142: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/github-projects-ventilation.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/github-projects-ventilation.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/label.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/label.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_actions.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pr_actions.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_actions.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pr_actions.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pr_actions.yml:80: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pr_actions.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr_actions.yml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pr_actions.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:109: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:122: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:143: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:146: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:156: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:170: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:177: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:189: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:192: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:200: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:224: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pull_request.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pull_request.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/pull_request.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-please.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/release-please.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-please.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/release-please.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-please.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/release-please.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/semantic-pr.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/semantic-pr.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/top-issues.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/top-issues.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/translation-check.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/openfoodfacts/openfoodfacts-server/translation-check.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:11","Warn: containerImage not pinned by hash: Dockerfile:210","Warn: containerImage not pinned by hash: Dockerfile:235","Warn: containerImage not pinned by hash: Dockerfile:289","Warn: containerImage not pinned by hash: Dockerfile.frontend:6","Warn: containerImage not pinned by hash: Dockerfile.frontend:34: pin your Docker image by updating nginx:stable to nginx:stable@sha256:24ccf9a6192d2c6c5c4a6e9d2fdfa2a8e382b15f8dd7d0e05a1579f6a46f7776","Warn: npmCommand not pinned by hash: Dockerfile.frontend:22","Info:   0 out of  45 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of  36 third-party GitHubAction dependencies pinned","Info:   0 out of   6 containerImage dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-22T07:42:31.409Z","repository_id":37412561,"created_at":"2025-08-22T07:42:31.409Z","updated_at":"2025-08-22T07:42:31.409Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36975250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-29T02:00:05.978Z","response_time":51,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"openfoodfacts","name":"Open Food Facts","uuid":"1937790","kind":"organization","description":"Open Food Facts is a collaborative, free and open database of food products from around the world.","email":"contact@openfoodfacts.org","website":"https://world.openfoodfacts.org/","location":"Paris, France","twitter":"openfoodfacts","company":null,"icon_url":"https://avatars.githubusercontent.com/u/1937790?v=4","repositories_count":109,"last_synced_at":"2024-10-29T21:14:08.514Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/openfoodfacts","funding_links":["https://github.com/sponsors/openfoodfacts"],"total_stars":4515,"followers":739,"following":0,"created_at":"2022-11-02T21:33:04.869Z","updated_at":"2024-10-29T21:14:08.514Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfoodfacts","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfoodfacts/repositories"},"packages":[],"commits":{"id":1254603,"full_name":"openfoodfacts/openfoodfacts-server","default_branch":"main","total_commits":33103,"total_committers":305,"total_bot_commits":966,"total_bot_committers":3,"mean_commits":108.5344262295082,"dds":0.42361719481617977,"past_year_total_commits":1323,"past_year_total_committers":83,"past_year_total_bot_commits":144,"past_year_total_bot_committers":1,"past_year_mean_commits":15.939759036144578,"past_year_dds":0.7535903250188964,"last_synced_at":"2026-08-19T16:38:27.964Z","last_synced_commit":"9d0842c32927839125c7c63078a5e7d25a90f90c","created_at":"2023-03-27T11:50:02.024Z","updated_at":"2026-08-13T13:36:28.069Z","committers":[{"name":"Pierre Slamich","email":"pierre@openfoodfacts.org","login":"teolemon","count":19080},{"name":"Stéphane Gigandet","email":"stephane@openfoodfacts.org","login":"stephanegigandet","count":3946},{"name":"Arnaud Leene","email":"aleene@gmail.com","login":"aleene","count":2840},{"name":"hangy","email":"hangy@hangy.de","login":"hangy","count":828},{"name":"moon-rabbitOFF","email":"34795011+moon-rabbitOFF","login":"moon-rabbitOFF","count":753},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":674},{"name":"Alex Garel","email":"alex@openfoodfacts.org","login":"alexgarel","count":423},{"name":"Freso","email":"dev@freso.dk","login":"Freso","count":406},{"name":"Sven","email":"svensven","login":"svensven","count":396},{"name":"Olivier Cervello","email":"ocervello@google.com","login":null,"count":392},{"name":"benbenben2","email":"110821832+benbenben2","login":"benbenben2","count":218},{"name":"AcuarioCat","email":"nigel@ntpworld.co.uk","login":"AcuarioCat","count":188},{"name":"roshnaeem","email":"rosheennaeem4@gmail.com","login":"roshnaeem","count":166},{"name":"github-actions[bot]","email":"41898282+github-actions[bot]","login":"github-actions[bot]","count":163},{"name":"Open Food Facts Bot","email":"119524357+openfoodfacts-bot","login":"openfoodfacts-bot","count":163},{"name":"Jussi Timperi","email":"jussi.timperi@iki.fi","login":"Ban3","count":130},{"name":"dependabot-preview[bot]","email":"27856297+dependabot-preview[bot]","login":"dependabot-preview[bot]","count":129},{"name":"VaiTon","email":"eyadlorenzo@gmail.com","login":"VaiTon","count":125},{"name":"dipietroR","email":"66142242+dipietroR","login":"dipietroR","count":122},{"name":"Charles Nepote","email":"charles@openfoodfacts.org","login":"CharlesNepote","count":115},{"name":"Raphaël Bournhonesque","email":"raphael@bournhonesque.eu","login":"raphael0202","count":112},{"name":"areeshatariq","email":"areeshatariq02@gmail.com","login":"areeshatariq","count":94},{"name":"john-gom","email":"116556069+john-gom","login":"john-gom","count":78},{"name":"root","email":"root@ns3135968.ip-51-77-65.eu","login":null,"count":74},{"name":"Jagjeevan Kashid","email":"jagjeevankashid97@gmail.com","login":"JagjeevanAK","count":59},{"name":"Roto15","email":"99144065+Roto15","login":"Roto15","count":53},{"name":"lan33","email":"rw2011cp@hotmail.fr","login":"lan33","count":52},{"name":"jolesh","email":"joraloe@gmail.com","login":"jolesh","count":51},{"name":"NerOcrO","email":"nerocro@gmail.com","login":"NerOcrO","count":43},{"name":"OpenChris","email":"chris@hurbin.com","login":"OpenChris","count":35},{"name":"Antoine B","email":"56827368+4nt0ineB","login":"4nt0ineB","count":34},{"name":"James Addison","email":"55152140+jayaddison","login":"jayaddison","count":33},{"name":"Alex","email":"alex@Alexs-MacBook-Pro.local","login":"bradfora","count":32},{"name":"mrmd8","email":"74515255+mrmd8","login":"mrmd8","count":31},{"name":"Nicolas Leger","email":"nicolas.leger@nleger.com","login":null,"count":28},{"name":"Ronan","email":"syronanm@gmail.com","login":"RonanMorgan","count":28},{"name":"Yukti","email":"73362292+yuktea","login":"yuktea","count":28},{"name":"Monalika Patnaik","email":"99353300+MonalikaPatnaik","login":"MonalikaPatnaik","count":26},{"name":"mahlzahn","email":"6549824+mahlzahn","login":"mahlzahn","count":24},{"name":"Teiron","email":"12804636+Teiron","login":"Teiron","count":24},{"name":"Pau Amma","email":"pauamma@gundo.com","login":"pauamma","count":24},{"name":"David Girón","email":"contacto@duhowpi.net","login":"duhow","count":24},{"name":"Agentic Commons Bot","email":"git@agentic-commons.org","login":"agentic-commons-bot","count":23},{"name":"Emil Eriksson","email":"8700261+ginger51011","login":"ginger51011","count":22},{"name":"laralem","email":"80917261+laralem","login":"laralem","count":17},{"name":"Kout95","email":"65901733+Kout95","login":"Kout95","count":17},{"name":"Báthory Péter","email":"bathory86p@gmail.com","login":"BathoryPeter","count":17},{"name":"Success Ologunsua","email":"successologunsua@gmail.com","login":"TheSussex","count":16},{"name":"Danil Garmanov","email":"danil.garmanov@protonmail.com","login":"blazern","count":15},{"name":"Funke Faith Olasupo","email":"55761629+Roxie-32","login":"Roxie-32","count":15},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":15},{"name":"Artur H. Lange","email":"ArturLange","login":"ArturLange","count":14},{"name":"Daniel O'Connor","email":"daniel.oconnor@gmail.com","login":"CloCkWeRX","count":14},{"name":"Danielius Ašmontas","email":"dan.asmontas@gmail.com","login":"DanieliusAsm","count":14},{"name":"Sebastien Aperghis-Tramoni","email":"sebastien@aperghis.net","login":"maddingue","count":13},{"name":"Yaron Shahrabani","email":"sh.yaron@gmail.com","login":"yarons","count":12},{"name":"Naruyoko","email":"naru519372@gmail.com","login":"Naruyoko","count":12},{"name":"Manon Corneille","email":"104015489+manon-corneille","login":"manon-corneille","count":12},{"name":"Julien","email":"120013023+albatrousse","login":"albatrousse","count":12},{"name":"Dhiraj Rathod","email":"2102508740@svyasa-sas.edu.in","login":"dhiraj-143r","count":12},{"name":"syl10100","email":"45109552+syl10100","login":"syl10100","count":11},{"name":"Malte","email":"25488086+github-throwaway","login":"github-throwaway","count":11},{"name":"RayanGoubet","email":"156110537+RayanGoubet","login":"RayanGoubet","count":10},{"name":"Valimp","email":"112864841+Valimp","login":"Valimp","count":10},{"name":"Leonard","email":"leonard.michelet@gmail.com","login":"leonarf","count":10},{"name":"Marco Ciotola","email":"848222@stud.unive.it","login":"McCio","count":9},{"name":"jnsereko","email":"58003327+jnsereko","login":"jnsereko","count":9},{"name":"Shinjigi","email":"shinjigi@gmail.com","login":"shinjigi","count":9},{"name":"oxidn","email":"sathyanadhvaidh@gmail.com","login":"oxidn","count":8},{"name":"Crowdin Bot","email":"support+bot@crowdin.com","login":"crowdin-bot","count":8},{"name":"Areeb Ahmed","email":"135235925+areebahmeddd","login":"areebahmeddd","count":8},{"name":"himanshisrestha","email":"135853264+himanshisrestha","login":"himanshisrestha","count":7},{"name":"K13b3r","email":"klber.eu@gmail.com","login":"K13b3r","count":7},{"name":"Edouard Marquez","email":"g123k","login":"g123k","count":7},{"name":"Darío Hereñú","email":"magallania@gmail.com","login":"kant","count":7},{"name":"Péter Báthory","email":"peter.bathory@cartographia.hu","login":null,"count":7},{"name":"Nothingspecial99","email":"122666701+Nothingspecial99","login":"Nothingspecial99","count":6},{"name":"very-smartin","email":"martin.cesb@gmail.com","login":"very-smartin","count":6},{"name":"Bernard","email":"53179327+bernardlemoullec","login":"bernardlemoullec","count":6},{"name":"Pratyaksh Khurana","email":"pratyakshkhuranaofficial@gmail.com","login":"pratyaksh1610","count":6},{"name":"Tacite","email":"TaciteOFF","login":"TaciteOFF","count":6},{"name":"Vic142","email":"144172903+Vic142","login":"Vic142","count":6},{"name":"mariali1","email":"63364401+mariali1","login":"mariali1","count":6},{"name":"sl956","email":"github@vince.eu.org","login":"offvince","count":6},{"name":"Deveshi Dwivedi","email":"120312681+deveshidwivedi","login":"deveshidwivedi","count":6},{"name":"Ganga Raghuwanshi","email":"raghuwanshiganga82@gmail.com","login":"ganga-300","count":6},{"name":"Viorel-Catalin Rapiteanu","email":"rapiteanu.catalin@gmail.com","login":"Steinhagen","count":5},{"name":"Pradumna","email":"65444978+pradumna-gautam","login":"pradumna-gautam","count":5},{"name":"Annieieieie","email":"112327071+Annieieieie","login":"Annieieieie","count":5},{"name":"Gennady Dogaev","email":"gendelflg@gmail.com","login":"GendelfLugansk","count":5},{"name":"KommX","email":"alexander.buchner@posteo.de","login":"KommX","count":5},{"name":"Jen","email":"lopzjcan@gmail.com","login":null,"count":5},{"name":"off","email":"off@openfoodfacts.org","login":null,"count":5},{"name":"muskangarg21","email":"muskan@iitk.ac.in","login":"muskangarg21","count":5},{"name":"Victor Prins","email":"32959052+VictorPrins","login":"VictorPrins","count":4},{"name":"Strubbl","email":"97055+Strubbl","login":"Strubbl","count":4},{"name":"Sam Tucker-Davis","email":"126325182+stuckvgn","login":"stuckvgn","count":4},{"name":"MaximeLaurenty","email":"MaximeLaurenty","login":"MaximeLaurenty","count":4},{"name":"Lunique","email":"lunasmoonlady@yahoo.de","login":"Lunique","count":4},{"name":"Kunal Gupta","email":"2007guptakunal@gmail.com","login":"Kunal241207","count":4},{"name":"Eric Nguyen","email":"ericnguyen.developper@gmail.com","login":"eric-nguyen-cs","count":4},{"name":"Dariusz Sułtanowski","email":"sultanowski.d@gmail.com","login":"sultanowski","count":4},{"name":"sandy9999","email":"luckysandy99@gmail.com","login":"sandy9999","count":4},{"name":"Nico Zigouras","email":"nico@Nicos-MacBook-Pro.local","login":null,"count":4},{"name":"elbeho","email":"elbeho@mongueurs.net","login":null,"count":4},{"name":"fuddl","email":"Alex@Annas-MacBook-Pro.local","login":null,"count":4},{"name":"root","email":"root@ks3095298.kimsufi.com","login":null,"count":4},{"name":"soheiyagi","email":"soheiyagi@gmail.com","login":"soheiyagi","count":4},{"name":"tur-ium","email":"tur-ium","login":"tur-ium","count":4},{"name":"fuddl","email":"alxndr@mailbox.org","login":"fuddl","count":4},{"name":"Jean Forget","email":"JFORGET@cpan.org","login":"jforget","count":4},{"name":"zond","email":"zondolfin@gmail.com","login":"zond","count":4},{"name":"odtvince","email":"vince@data.gouv.fr","login":"odtvince","count":3},{"name":"sebeeek","email":"sebastien.abeille@gmail.com","login":"sebeeek","count":3},{"name":"Lhoutre","email":"lhoumeau.maxime@gmail.com","login":"Makitsu","count":3},{"name":"Nithya Vasireddi","email":"nithyavasireddi@gmail.com","login":"nithyaV-dev","count":3},{"name":"Nico Zigouras","email":"16895616+zigouras","login":"zigouras","count":3},{"name":"foodietim","email":"157665402+foodietim","login":"foodietim","count":3},{"name":"Tuukka Hastrup","email":"Tuukka.Hastrup@iki.fi","login":"tuukka","count":3},{"name":"Thomas Catinaud Taris","email":"5670642+TCatinaud","login":"TCatinaud","count":3},{"name":"Sumit Kashyap","email":"mr.sumitkrr@gmail.com","login":"sumit-158","count":3},{"name":"Sneha6003","email":"147996970+Sneha6003","login":"Sneha6003","count":3},{"name":"Krishita Jain","email":"66058206+krishita30j","login":"krishita30j","count":3},{"name":"Divyansh Singh","email":"divyanshanandsingh@gmail.com","login":"diivi","count":3},{"name":"Arybhatt","email":"bhattarya4533@gmail.com","login":"arybhatt4533","count":3},{"name":"Andrea Stagi","email":"stagi.andrea@gmail.com","login":"astagi","count":3},{"name":"Nico Zigouras","email":"nunya@biz.com","login":null,"count":3},{"name":"root","email":"root@openfoodfacts.org","login":null,"count":3},{"name":"SAITEJA","email":"kommisaiteja677@gmail.com","login":"SaitejaKommi","count":3},{"name":"Pranjal J","email":"136667416+pranjal2004838","login":"pranjal2004838","count":3},{"name":"Abi","email":"llawlietbagsum@gmail.com","login":"LarytheLord","count":2},{"name":"Alex Adak","email":"127800544+aadak99","login":"aadak99","count":2},{"name":"Aman-Jamshed","email":"amanjamshed3@gmail.com","login":"Aman-Jamshed","count":2},{"name":"Ambonati Victor","email":"victorambonati@hotmail.fr","login":"Vicam","count":2},{"name":"BryanH01","email":"92093032+BryanH01","login":"BryanH01","count":2},{"name":"Abderhman G. Zaki","email":"151753026+abderhman487","login":"abderhman487","count":2},{"name":"UrbanFercec","email":"79310380+UrbanFercec","login":"UrbanFercec","count":2},{"name":"Unpublished","email":"Unpublished","login":"Unpublished","count":2},{"name":"Trond Kjetil","email":"218276+tkbremnes","login":"tkbremnes","count":2},{"name":"Sam Tucker-Davis","email":"126325182+samtuckerdavis","login":"samtuckerdavis","count":2},{"name":"David","email":"david@macrofactorapp.com","login":"davidpryor","count":2},{"name":"Emmanuel Seyman","email":"emmanuel+github@seyman.fr","login":"eseyman","count":2},{"name":"Etatdesprit","email":"68120656+Etatdesprit","login":"Etatdesprit","count":2},{"name":"Jecrivaine","email":"67744981+Jecrivaine","login":"Jecrivaine","count":2},{"name":"Jess","email":"jessachandler@gmail.com","login":"monkeywithacupcake","count":2},{"name":"Florentin Raud","email":"florentin.raud@gmail.com","login":null,"count":2},{"name":"KommX","email":"","login":null,"count":2},{"name":"Roto15","email":"rotomoto@duck.com","login":null,"count":2},{"name":"Laurent Dami","email":"dami@cpan.org","login":"damil","count":2},{"name":"Snyk bot","email":"github+bot@snyk.io","login":"snyk-bot","count":2},{"name":"Alexandre Marty","email":"alexandre@marty.in","login":"alex-marty","count":2},{"name":"Piotr","email":"franiis16@gmail.com","login":"franiis","count":2},{"name":"k2s","email":"martin.minka@gmail.com","login":"k2s","count":2},{"name":"mik1xcz","email":"160590887+mik1xcz","login":"mik1xcz","count":2},{"name":"niko bazylev","email":"42851684+bazylevnik0","login":"bazylevnik0","count":2},{"name":"sgtSeme4ki","email":"68777761+sgtSeme4ki","login":"sgtSeme4ki","count":2},{"name":"that1","email":"github@that.at","login":"that1","count":2},{"name":"twindel","email":"uj_b@hotmail.com","login":"twindel","count":2},{"name":"vanshikaarora","email":"vanshikaa937@gmail.com","login":"vanshikaarora","count":2},{"name":"GARVIT  BHATT","email":"garvitbhattpc@gmail.com","login":"garvit-bhattt","count":2},{"name":"Kirtan Manoj Chandak","email":"92196705+kirtanchandak","login":"kirtanchandak","count":2},{"name":"fmarghi","email":"dev@liame.xyz","login":"fmarghi","count":2},{"name":"cmap99","email":"101516688+cmap99","login":"cmap99","count":2},{"name":"Priyanka","email":"56197993+priyanka0906","login":"priyanka0906","count":2},{"name":"Pilou","email":"pierre-louis@libregerbil.fr","login":"pilou-","count":2},{"name":"leonard","email":"leonard@lebasic.com","login":null,"count":2},{"name":"Nicolò Paternoster","email":"paternoster.nicolo@gmail.com","login":"adv0r","count":2},{"name":"Nicolas Métifiot","email":"nmetifiot","login":"nmetifiot","count":2},{"name":"Marvin M","email":"39344769+M123-dev","login":"M123-dev","count":2},{"name":"Marco Rossini","email":"me@marcorossini.com","login":"bobcorn","count":2},{"name":"Levent Günay","email":"leventgny@gmail.com","login":"leventgunay","count":2},{"name":"Viorel-Catalin Rapiteanu","email":"catalin.rapiteanu@intel.com","login":"crapitea","count":2},{"name":"Aadarsh A","email":"aadarsh.ram@gmail.com","login":"aadarsh-ram","count":2},{"name":"adam jones","email":"domdomegg+git@gmail.com","login":"domdomegg","count":2},{"name":"alemit","email":"aleksandarmitrev@gmail.com","login":"alemit","count":2},{"name":"alexouille123","email":"67234740+alexouille123","login":"alexouille123","count":2},{"name":"bertrand-amaraggi","email":"63349837+bertrand-amaraggi","login":"bertrand-amaraggi","count":2},{"name":"borrokk","email":"64474095+borrokk","login":"borrokk","count":2},{"name":"Sanjay H","email":"69153982+TheSanjBot","login":"TheSanjBot","count":1},{"name":"Stéphane Parunakian","email":"sparunakian","login":"sparunakian","count":1},{"name":"Suvam Patra","email":"Patrasuvam15@gmail.com","login":"suvammpatra","count":1},{"name":"Swastik Ranjan Panigrahi","email":"textswastik.alt@gmail.com","login":"swastikCommits","count":1},{"name":"Sébastien Feugère","email":"smonff","login":"smonff","count":1},{"name":"Tanuj Garg","email":"87695633+Tanujgarg37","login":"Tanujgarg37","count":1},{"name":"TechShooter","email":"TechShooter","login":"TechShooter","count":1},{"name":"Tomeshwari Sahu","email":"scketcha@gmail.com","login":"Tomeshwari-02","count":1},{"name":"Tushar","email":"ditsuke@protonmail.com","login":"ditsuke","count":1},{"name":"PENN JR™","email":"85356158+Payne680","login":"Payne680","count":1},{"name":"Victor-Hermes","email":"154025039+Victor-Hermes","login":"Victor-Hermes","count":1},{"name":"Vikas","email":"vs4445277@gmail.com","login":"Vikas4245","count":1},{"name":"Vince","email":"vince@openfoodfacts.org","login":"teleboas","count":1},{"name":"aleksejrs","email":"aleksejrs","login":"aleksejrs","count":1},{"name":"andrewhuanggg","email":"78528607+andrewhuanggg","login":"andrewhuanggg","count":1},{"name":"Shamun Khatri","email":"shamunkhatri@gmail.com","login":"shamun-khatri","count":1},{"name":"Shivangi Chaurasia","email":"56307595+shivangi3001","login":"shivangi3001","count":1},{"name":"Silvério Santos","email":"ssantos@web.de","login":"SantosSi","count":1},{"name":"Simon Jenkins","email":"38865319+simonj2","login":"simonj2","count":1},{"name":"Stefan Wobbe","email":"wobfan@pm.me","login":"wobfan","count":1},{"name":"Utkarsh Kumar","email":"utkarshkumar199193029@gmail.com","login":"utkarshkgithub","count":1},{"name":"Sam K Thampan","email":"64613068+devsk18","login":"devsk18","count":1},{"name":"Saksham Gupta","email":"84325475+Sakshamgupta90","login":"Sakshamgupta90","count":1},{"name":"SIDHANSU SINGH","email":"sidhanshusingh445@gmail.com","login":"sidhansu10","count":1},{"name":"Rory Powis","email":"rpowis","login":"rpowis","count":1},{"name":"Reno","email":"gillet.ren@gmail.com","login":"gilren","count":1},{"name":"Raphaël Odini","email":"raphodn","login":"raphodn","count":1},{"name":"Pranav Choudhary","email":"chaudharyypranav@gmail.com","login":"pranavchoudhary-tech","count":1},{"name":"PrajwalM2212","email":"prajwalmmath@gmail.com","login":"PrajwalM2212","count":1},{"name":"Pierce Andjelkovic","email":"pierceandjelkovic@gmail.com","login":"archanox","count":1},{"name":"Adrien Chauve","email":"adrien.chauve@gmail.com","login":null,"count":1},{"name":"jalanyash","email":"57186641+jalanyash","login":"jalanyash","count":1},{"name":"jasmeet0817","email":"jasmeet0817@gmail.com","login":"jasmeet0817","count":1},{"name":"jusfla","email":"133013209+jusfla","login":"jusfla","count":1},{"name":"k3lyan","email":"kelyan.morfouesse@gmail.com","login":"k3lyan","count":1},{"name":"laulowen","email":"2105057+laulowen","login":"laulowen","count":1},{"name":"leonid lednev","email":"46404279+leonidlednev","login":"leonidlednev","count":1},{"name":"medape","email":"carlosferrimag@gmail.com","login":"medape","count":1},{"name":"noatime","email":"noatime","login":"noatime","count":1},{"name":"odin-h","email":"150337574+odin-h","login":"odin-h","count":1},{"name":"omahs","email":"73983677+omahs","login":"omahs","count":1},{"name":"omerfaruk-cakmak","email":"32402595+omerfaruk-cakmak","login":"omerfaruk-cakmak","count":1},{"name":"oyenuga17","email":"64274826+oyenuga17","login":"oyenuga17","count":1},{"name":"paperplanes53","email":"paperplanes53","login":"paperplanes53","count":1},{"name":"samir","email":"azzouz.sam@gmail.com","login":"azzsamir","count":1},{"name":"subi9","email":"63897356+subi9","login":"subi9","count":1},{"name":"anri","email":"anarita.dauane@gmail.com","login":"anaritadauane","count":1},{"name":"beerhalt","email":"lbeerhal@andrew.cmu.edu","login":"beerhalt","count":1},{"name":"code-a1","email":"68858676+code-a1","login":"code-a1","count":1},{"name":"danwyk","email":"danwyk.wang@gmail.com","login":"danwyk","count":1},{"name":"emmapeel2","email":"emmapeel@aktivix.org","login":"emmapeel2","count":1},{"name":"fazalpsinfo-cmyk","email":"fazalpsinfo@gmail.com","login":"fazalpsinfo-cmyk","count":1},{"name":"gospodin55","email":"63956324+gospodin55","login":"gospodin55","count":1},{"name":"helloworldtest123","email":"36381315+helloworldtest123","login":"helloworldtest123","count":1},{"name":"pijey","email":"pjvilloud-bitbucket@yahoo.fr","login":null,"count":1},{"name":"hannsen","email":"jan@hro-home.de","login":null,"count":1},{"name":"gnaweric","email":"gnaw.eric@gmail.com","login":null,"count":1},{"name":"Simon Gheeraert","email":"simon.gheeraert@illuin.tech","login":null,"count":1},{"name":"Julien Kassar","email":"github@kassisol.com","login":null,"count":1},{"name":"Henrik Oelze","email":"hoelze@prosystem-nsf.com","login":null,"count":1},{"name":"Gilles","email":"ggozlan@teamreso.fr","login":null,"count":1},{"name":"Filip Sauer","email":"st176721@stud.uni-stuttgart.de","login":null,"count":1},{"name":"Dev-Ashank","email":"78907802+Dev-Ashank","login":"Dev-Ashank","count":1},{"name":"Dhruv Awasthi","email":"dhruvawasthicc@gmail.com","login":"DhruvAwasthi","count":1},{"name":"Eliška","email":"with.the.lemons@gmail.com","login":"withthelemons","count":1},{"name":"Emmanuel Ferdman","email":"emmanuelferdman@gmail.com","login":"emmanuel-ferdman","count":1},{"name":"Evgeniy Vasilev","email":"aquilax@gmail.com","login":"aquilax","count":1},{"name":"FemmeNoire","email":"github@femmenoire.de","login":"FemmeNoire","count":1},{"name":"Fernando Jaramillo","email":"71108160+JoseJaramillo04","login":"JoseJaramillo04","count":1},{"name":"Filip Sauer","email":"sauer.filip@gmail.com","login":"srflp","count":1},{"name":"GabrielBeFr","email":"112394931+GabrielBeFr","login":"GabrielBeFr","count":1},{"name":"Genadiy Ryabkin","email":"g.rjabkin@gmail.com","login":"GRyabkin","count":1},{"name":"Goverdhan Biradar","email":"66107302+goverdhan07","login":"goverdhan07","count":1},{"name":"Helge Willum Thingvad","email":"1019305+tachylatus","login":"tachylatus","count":1},{"name":"Himaj333","email":"78681144+HimajPatil","login":"HimajPatil","count":1},{"name":"HummingBrid","email":"hummingbrid@ymail.com","login":"HummingBrid","count":1},{"name":"IWouldShiverTheWholeNightThrough","email":"95775047+IWouldShiverTheWholeNightThrough","login":"IWouldShiverTheWholeNightThrough","count":1},{"name":"JBelcoco","email":"48061671+JBelcoco","login":"JBelcoco","count":1},{"name":"Abby Hart","email":"94138365+abbyrhart","login":"abbyrhart","count":1},{"name":"Advait Athreya","email":"89476471+advaitathreya","login":"advaitathreya","count":1},{"name":"Albert Sund Aillet","email":"73786209+albertaillet","login":"albertaillet","count":1},{"name":"Alexandre Fauquette","email":"45398769+alexfauquette","login":"alexfauquette","count":1},{"name":"Alper Mulayim","email":"alper.mulayim48@gmail.com","login":"AlperMulayim","count":1},{"name":"Anca Luca","email":"lucaa@xwiki.com","login":"lucaa","count":1},{"name":"Anh Quang Nguyen","email":"29374105+areporeporepo","login":"areporeporepo","count":1},{"name":"Atos10","email":"100791038+Atos10","login":"Atos10","count":1},{"name":"Benjamin Loison","email":"12752145+Benjamin-Loison","login":"Benjamin-Loison","count":1},{"name":"Bhavya Khatri","email":"khatribhavya2703@gmail.com","login":"bhavyaKhatri2703","count":1},{"name":"Christian Quest","email":"cquest@openstreetmap.fr","login":"cquest","count":1},{"name":"Christian Schuhmann","email":"c-schuhmann@mailbox.org","login":"c-schuhmann","count":1},{"name":"Cody Njos","email":"69707332+CodyNjos","login":"CodyNjos","count":1},{"name":"Cutypareek","email":"75947841+Cutypareek","login":"Cutypareek","count":1},{"name":"Davide Crucitti","email":"davidoskky@yahoo.it","login":"davidoskky","count":1},{"name":"Dennis Ahlqvist","email":"dennisahlqvist@hotmail.com","login":"dennisahlqvist","count":1},{"name":"M Skanda Shyam Bhat","email":"4VP23CS044@vcetputtur.ac.in","login":"mskandashyambhat","count":1},{"name":"Majdi Saibi","email":"saibimajdi@outlook.com","login":"saibimajdi","count":1},{"name":"Mansi Sharma","email":"142149001+57200","login":"57200","count":1},{"name":"Mike","email":"162586393+mike-lu1","login":"mike-lu1","count":1},{"name":"Mohan Kumar","email":"121867882+ItshMoh","login":"ItshMoh","count":1},{"name":"Mohit Sharma","email":"msvbs98@gmail.com","login":"ms10398","count":1},{"name":"Nachiketa Pahari","email":"nachiketapahari00@gmail.com","login":"Pahari47","count":1},{"name":"Nur Aiman Fadel","email":"2870632+nuraiman","login":"nuraiman","count":1},{"name":"Olivier Mengué","email":"dolmen@cpan.org","login":"dolmen","count":1},{"name":"Olivier Wouters","email":"olivier5741@gmail.com","login":"olivier5741","count":1},{"name":"P.-H. Lin","email":"Cypresslin","login":"Cypresslin","count":1},{"name":"Paolo","email":"120209350+maxymus-1","login":"maxymus-1","count":1},{"name":"Parshv Dharmendra Runwal","email":"parshvrunwal567@gmail.com","login":"Parshv-sudo","count":1},{"name":"Pawan","email":"42340841+Pawansingh3889","login":"Pawansingh3889","count":1},{"name":"Pawan Patidar","email":"pawanpatidar8538@gmail.com","login":"Pawan8538","count":1},{"name":"Peter van der Veeken","email":"peter@smarttrackers.nl","login":"petervdv","count":1},{"name":"Jaen Saul","email":"jaen@saul.ee","login":"jaens","count":1},{"name":"Jeremy Arancio","email":"97704986+jeremyarancio","login":"jeremyarancio","count":1},{"name":"JieDiscovery","email":"36447962+JieDiscovery","login":"JieDiscovery","count":1},{"name":"John Lianoglou","email":"prometheas","login":"prometheas","count":1},{"name":"John Nilsson","email":"john@milsson.nu","login":"JohnNilsson","count":1},{"name":"JulieMaricicDetweiler","email":"80288445+JulieMaricicDetweiler","login":"JulieMaricicDetweiler","count":1},{"name":"Julien Palard","email":"julien@palard.fr","login":"JulienPalard","count":1},{"name":"Jurijs Ivanovs","email":"yura@ivanov.lv","login":"yuri-ivanov1972","count":1},{"name":"Justin Hutchings","email":"jhutchings1","login":"jhutchings1","count":1},{"name":"Karl Jones","email":"karljones@live.ie","login":"Karljoones","count":1},{"name":"Kayla Edwards","email":"kaylae@andrew.cmu.edu","login":"kaylae605","count":1},{"name":"Kezxo","email":"Kezxo","login":"Kezxo","count":1},{"name":"Knut Ahlers","email":"knut@ahlers.me","login":"Luzifer","count":1},{"name":"L Bo","email":"elbeho","login":"elbeho","count":1},{"name":"Lampone","email":"skechele@gmail.com","login":"Lampone","count":1},{"name":"Lucas Pretti","email":"lucaspretti","login":"lucaspretti","count":1},{"name":"tchen0125","email":"76577829+tchen0125","login":"tchen0125","count":1}],"past_year_committers":[{"name":"Freso","email":"dev@freso.dk","login":"Freso","count":326},{"name":"moon-rabbitOFF","email":"34795011+moon-rabbitOFF","login":"moon-rabbitOFF","count":155},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":144},{"name":"Stéphane Gigandet","email":"stephane@openfoodfacts.org","login":"stephanegigandet","count":115},{"name":"Pierre Slamich","email":"pierre@openfoodfacts.org","login":"teolemon","count":79},{"name":"Alex Garel","email":"alex@openfoodfacts.org","login":"alexgarel","count":63},{"name":"Open Food Facts Bot","email":"119524357+openfoodfacts-bot","login":"openfoodfacts-bot","count":61},{"name":"Arnaud Leene","email":"aleene@gmail.com","login":"aleene","count":48},{"name":"john-gom","email":"116556069+john-gom","login":"john-gom","count":39},{"name":"hangy","email":"hangy@hangy.de","login":"hangy","count":28},{"name":"Agentic Commons Bot","email":"git@agentic-commons.org","login":"agentic-commons-bot","count":23},{"name":"Emil Eriksson","email":"8700261+ginger51011","login":"ginger51011","count":22},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":15},{"name":"benbenben2","email":"110821832+benbenben2","login":"benbenben2","count":14},{"name":"James Addison","email":"55152140+jayaddison","login":"jayaddison","count":14},{"name":"Jagjeevan Kashid","email":"jagjeevankashid97@gmail.com","login":"JagjeevanAK","count":13},{"name":"Raphaël Bournhonesque","email":"raphael@bournhonesque.eu","login":"raphael0202","count":12},{"name":"Dhiraj Rathod","email":"2102508740@svyasa-sas.edu.in","login":"dhiraj-143r","count":12},{"name":"VaiTon","email":"eyadlorenzo@gmail.com","login":"VaiTon","count":11},{"name":"oxidn","email":"sathyanadhvaidh@gmail.com","login":"oxidn","count":8},{"name":"Ganga Raghuwanshi","email":"raghuwanshiganga82@gmail.com","login":"ganga-300","count":6},{"name":"Leonard","email":"leonard.michelet@gmail.com","login":"leonarf","count":5},{"name":"Sven","email":"svensven","login":"svensven","count":5},{"name":"Victor Prins","email":"32959052+VictorPrins","login":"VictorPrins","count":4},{"name":"Teiron","email":"12804636+Teiron","login":"Teiron","count":4},{"name":"soheiyagi","email":"soheiyagi@gmail.com","login":"soheiyagi","count":4},{"name":"Sam Tucker-Davis","email":"126325182+stuckvgn","login":"stuckvgn","count":4},{"name":"Kunal Gupta","email":"2007guptakunal@gmail.com","login":"Kunal241207","count":4},{"name":"Nithya Vasireddi","email":"nithyavasireddi@gmail.com","login":"nithyaV-dev","count":3},{"name":"Pranjal J","email":"136667416+pranjal2004838","login":"pranjal2004838","count":3},{"name":"Naruyoko","email":"naru519372@gmail.com","login":"Naruyoko","count":3},{"name":"SAITEJA","email":"kommisaiteja677@gmail.com","login":"SaitejaKommi","count":3},{"name":"Vic142","email":"144172903+Vic142","login":"Vic142","count":3},{"name":"Charles Nepote","email":"charles@openfoodfacts.org","login":"CharlesNepote","count":3},{"name":"Arybhatt","email":"bhattarya4533@gmail.com","login":"arybhatt4533","count":3},{"name":"Areeb Ahmed","email":"135235925+areebahmeddd","login":"areebahmeddd","count":3},{"name":"Marco Rossini","email":"me@marcorossini.com","login":"bobcorn","count":2},{"name":"Manon Corneille","email":"104015489+manon-corneille","login":"manon-corneille","count":2},{"name":"Nicolò Paternoster","email":"paternoster.nicolo@gmail.com","login":"adv0r","count":2},{"name":"Báthory Péter","email":"bathory86p@gmail.com","login":"BathoryPeter","count":2},{"name":"Abi","email":"llawlietbagsum@gmail.com","login":"LarytheLord","count":2},{"name":"twindel","email":"uj_b@hotmail.com","login":"twindel","count":2},{"name":"mik1xcz","email":"160590887+mik1xcz","login":"mik1xcz","count":2},{"name":"cmap99","email":"101516688+cmap99","login":"cmap99","count":2},{"name":"adam jones","email":"domdomegg+git@gmail.com","login":"domdomegg","count":2},{"name":"UrbanFercec","email":"79310380+UrbanFercec","login":"UrbanFercec","count":2},{"name":"Unpublished","email":"Unpublished","login":"Unpublished","count":2},{"name":"Sam Tucker-Davis","email":"126325182+samtuckerdavis","login":"samtuckerdavis","count":2},{"name":"RayanGoubet","email":"156110537+RayanGoubet","login":"RayanGoubet","count":2},{"name":"leonard","email":"leonard@lebasic.com","login":null,"count":2},{"name":"Parshv Dharmendra Runwal","email":"parshvrunwal567@gmail.com","login":"Parshv-sudo","count":1},{"name":"Pawan","email":"42340841+Pawansingh3889","login":"Pawansingh3889","count":1},{"name":"Pranav Choudhary","email":"chaudharyypranav@gmail.com","login":"pranavchoudhary-tech","count":1},{"name":"Raphaël Odini","email":"raphodn","login":"raphodn","count":1},{"name":"Reno","email":"gillet.ren@gmail.com","login":"gilren","count":1},{"name":"Roto15","email":"99144065+Roto15","login":"Roto15","count":1},{"name":"SIDHANSU SINGH","email":"sidhanshusingh445@gmail.com","login":"sidhansu10","count":1},{"name":"Sam K Thampan","email":"64613068+devsk18","login":"devsk18","count":1},{"name":"Sanjay H","email":"69153982+TheSanjBot","login":"TheSanjBot","count":1},{"name":"Suvam Patra","email":"Patrasuvam15@gmail.com","login":"suvammpatra","count":1},{"name":"Swastik Ranjan Panigrahi","email":"textswastik.alt@gmail.com","login":"swastikCommits","count":1},{"name":"Tomeshwari Sahu","email":"scketcha@gmail.com","login":"Tomeshwari-02","count":1},{"name":"Tuukka Hastrup","email":"Tuukka.Hastrup@iki.fi","login":"tuukka","count":1},{"name":"Utkarsh Kumar","email":"utkarshkumar199193029@gmail.com","login":"utkarshkgithub","count":1},{"name":"Vikas","email":"vs4445277@gmail.com","login":"Vikas4245","count":1},{"name":"beerhalt","email":"lbeerhal@andrew.cmu.edu","login":"beerhalt","count":1},{"name":"Anh Quang Nguyen","email":"29374105+areporeporepo","login":"areporeporepo","count":1},{"name":"Benjamin Loison","email":"12752145+Benjamin-Loison","login":"Benjamin-Loison","count":1},{"name":"Bhavya Khatri","email":"khatribhavya2703@gmail.com","login":"bhavyaKhatri2703","count":1},{"name":"Cody Njos","email":"69707332+CodyNjos","login":"CodyNjos","count":1},{"name":"David","email":"david@macrofactorapp.com","login":"davidpryor","count":1},{"name":"GARVIT  BHATT","email":"garvitbhattpc@gmail.com","login":"garvit-bhattt","count":1},{"name":"IWouldShiverTheWholeNightThrough","email":"95775047+IWouldShiverTheWholeNightThrough","login":"IWouldShiverTheWholeNightThrough","count":1},{"name":"Jean Forget","email":"JFORGET@cpan.org","login":"jforget","count":1},{"name":"Jurijs Ivanovs","email":"yura@ivanov.lv","login":"yuri-ivanov1972","count":1},{"name":"Kayla Edwards","email":"kaylae@andrew.cmu.edu","login":"kaylae605","count":1},{"name":"Kirtan Manoj Chandak","email":"92196705+kirtanchandak","login":"kirtanchandak","count":1},{"name":"Lucas Pretti","email":"lucaspretti","login":"lucaspretti","count":1},{"name":"M Skanda Shyam Bhat","email":"4VP23CS044@vcetputtur.ac.in","login":"mskandashyambhat","count":1},{"name":"Mansi Sharma","email":"142149001+57200","login":"57200","count":1},{"name":"Nachiketa Pahari","email":"nachiketapahari00@gmail.com","login":"Pahari47","count":1},{"name":"Nur Aiman Fadel","email":"2870632+nuraiman","login":"nuraiman","count":1},{"name":"fazalpsinfo-cmyk","email":"fazalpsinfo@gmail.com","login":"fazalpsinfo-cmyk","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-21T00:00:17.498Z","repositories_count":6769902,"commits_count":981551896,"contributors_count":41386548,"owners_count":1363097,"committers_count":3357876,"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":"openfoodfacts/openfoodfacts-server","html_url":"https://github.com/openfoodfacts/openfoodfacts-server","last_synced_at":"2026-08-28T21:04:58.087Z","status":null,"issues_count":4115,"pull_requests_count":10237,"avg_time_to_close_issue":38450140.18163097,"avg_time_to_close_pull_request":1824146.272066681,"issues_closed_count":2427,"pull_requests_closed_count":9358,"pull_request_authors_count":310,"issue_authors_count":268,"avg_comments_per_issue":2.1375455650060755,"avg_comments_per_pull_request":2.6201035459607307,"merged_pull_requests_count":7986,"bot_issues_count":7,"bot_pull_requests_count":1599,"past_year_issues_count":124,"past_year_pull_requests_count":530,"past_year_avg_time_to_close_issue":1177327.9444444445,"past_year_avg_time_to_close_pull_request":733276.2080745342,"past_year_issues_closed_count":18,"past_year_pull_requests_closed_count":322,"past_year_pull_request_authors_count":59,"past_year_issue_authors_count":39,"past_year_avg_comments_per_issue":1.435483870967742,"past_year_avg_comments_per_pull_request":3.3471698113207546,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":30,"past_year_merged_pull_requests_count":278,"created_at":"2023-05-09T10:34:51.045Z","updated_at":"2026-08-28T21:04:58.087Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfoodfacts%2Fopenfoodfacts-server/issues","issue_labels_count":{"bug":736,"⏰ Stale":566,"feature":408,"🐛 bug":326,"✨ Feature":240,"API":198,"Stale":172,"🎯 P1":157,"🧽 Data quality":145,"good first issue":142,"🏭 Producers Platform":131,"ingredients":114,"taxonomies":108,"data quality":106,"Fixed ?":105,"frontend":102,"📖 Knowledge Panels":99,"i18n":93,"ingredients analysis":82,"🥗🔍 Ingredients analysis":78,"producers platform":78,"🧬 Taxonomies":78,"✔ task":74,"Product Page":73,"P3":72,"P1":70,"P2":66,"✅ Task":65,"5 minute fix":63,"🧴 Open Beauty Facts":63,"Template::Toolkit":62,"labels":60,"editing":55,"📚 Documentation":55,"ecoscore":55,"categories":55,"📸 Open Products Facts":54,"🥗  Ingredients":52,"fixed?":51,"Nutrition facts":48,"search":48,"🤳🥫 blocking mobile apps":44,"✏️ Editing":44,"🌐 i18n":44,"static content":44,":star: top issue":43,"API READ":43,"Nutrients":42,"🚦 Nutri-Score":42,"🔎  Search":41,"facets":41,"barcodes":39,"new design":38,"nutrition facts":37,"additives":36,"📍🏭 Packager codes":35,"packaging":35,"🎯 P0":35,"⏲️ 5 minute fix":35,"help wanted":34,"🚅 Performance":33,"images":33,"API Refactor":32,"product attributes":32,"🎨 Mockup available":32,"nutrients":31,"👩‍💻 DevOps":31,"🐾 Open Pet Food Facts":30,"🎨 New design":30,"📦 Packaging":30,"OCR":30,"CSS":30,"P1 candidate":29,"knowledge-panels":29,"responsive ux":28,"non tech":28,"👥 User management":28,"foundation":28,"multingual products":27,"API read":27,"refactor":26,"🧪 additives":26,"performance":25,"mongodb":25,"devops":25,"JavaScript":25,"css":24,"👮 Moderation":23,"Hacktoberfest":23,"security":23,"🏷️ Folksonomy Project":23,"P0":23,"Knowledge panels":23,"🤳🥫 mobile apps":22,"🎨 Design":22,"blocking mobile apps":22,"quality-facet":22,"javascript":22,"needs deployment":22,"dev":22,"🖼️ Images":22,"🎯 P1 candidate":21,"brokenlinks":21,"📍 Origins":21,"accessibility ♿":21,"translations":21,"packager codes":21,":star: :bug: top bug":20,"Data export":20,"units":20,"API WRITE":20,"🖼️ Image upload":20,"outreachy":19,"user-management":19,"🤖 Robotoff":19,"scan statistics":19,"docker":19,"ingredient-list-cutting":19,"documentation":19,"design":19,"personal search":18,"data import":18,"Perl":18,"nova":18,"✏️ Editing - Nutrition":18,"admin tools":18,"🌍 Multilingual products":18,"P4":18,"✏️ Editing - Auto Suggest":18,"brands":18,"API write":17,"Nova - Ultra-processed foods":17,"infrastructure":17,"data export":17,"🕷️ SEO":17,"status system":17,"ci":16,"export":16,"📨 Emails":16,"palm oil":16,"🧪 tests":16,"papercuts":16,"averages by categories":16,"open beauty facts":16,"footer":16,"product history":16,"MongoDB":15,"🌱 Eco-Score":15,"🌱 Green-Score":15,"task":15,"SEO":15,"image upload":15,"🥜 Allergens":15,"GitHub Actions":14,"Road to app":14,"data4good-environment":14,"Translations":14,"⚖️ Quantity":14,":star: top bug":14,"🔐 API auth":14,"📍 location":14,"GS1":14,"Attributes":14,"hunger games":13,"maintenance":13,"homepage":13,"location":13,"allergens":13,"🔎 Advanced Search":13,"👍 Top 10 Issue!":13,"advanced search":13,"🎁 donations":13,"mockup-available":13,"🛣️ Road to scores":13,"gamification":13,"📊 Charts":13,"📝 story":13,"CSV exports":13,"no-issue-activity":12,"📚 OpenAPI":12,"🇺🇸 United States":12,"product addition":12,"🏭 Producers Platform - data imports":12,"Made Near Me":12,"🥛 Mineral waters":12,"organic products":12,"Signup Page":12,"German":12,"blocking off explorer":11,"API v3":11,"robotoff":11,"Admin tools":11,"onboarding":11,"tests":11,"cropping":11,"nutriscore":11,"wikidata":11,"question":11,"CIQUAL":10,"🏭 Producers Platform - onboarding":10,"CI":10,"github_actions":10,"List pages":10,"graphs":10,"Fixable via Userscript":10,"🕹️ Gamification":10,"🧽 Data quality - Prevention":10,"multilingual products":10,"dependencies":10,"🧽  Data quality - Nutrition":10,"Tags.pm":10,"🧽 Data quality - Measure - Quality facets":10,"Russian":10,"vegan":9,"microformats":9,"contribution journey":9,"server":9,"🚦Nutri-Score":9,"environment":9,"linked data":9,"✂️ Editing - Images - Cropping":9,"special-diets":9,"Data import":9,"WikiData":9,"🏭 Producers Platform - Odoo":9,"logos":9,"installation":9,"📊 graphs":8,"🌐 Translations":8,"🍷 wine":8,"CORS":8,"product lists":8,"carbon footprint":8,"🧬 Taxonomies - Translation":8,"moving-images":8,"needs investigation":8,"tag images":8,"3rd party contributions":8,"🧽 Quality facet":8,"autosuggest":8,"fruits vegetables nuts estimate":8,"caching":8,"📖 Knowledge Panels - For facets":7,"🗄 Obsolete products":7,"category-specific support":7,"Outreachy":7,"top navigation":7,"traces":7,"Ingredients knowledge panel":7,"automation":7,"data-freshness":7,"🐋 Docker":7,"Data destroying issue":7,"👥 Users":7,"blocking-smoothie":7,"🗺️ Maps":7,"portions":7,"♞ epic":7,"Sprint":7,"wiki":7,"quantity":7,"♞ Epic":7,"HTML":7,"🇨🇭 Switzerland":6,"nutrition editing":6,"donations":6,"404":6,"nginx":6,"osd'22":6,"Epic":6,"inline edit":6,"fixable-via-userscript":6,"Spanish":6,"dev journeys documentation":6,"new fields":6,"origins":6,"pathway-to-contribution":6,"Big Bang for Your Time":6,"China":6,"serving size":6,"🥗 Ingredients":6,"🔎 Search":6,"Can be done by Robotoff":6,"automatic-data-augmentation":6,"Emails":6,"📖 Knowledge panels - Actions":6,"Recent changes":6,"Power User Script":5,"🐠 Fishing":5,"edit rules":5,"offline mode":5,"🔔 Notifications":5,"🧽 Data quality - Prevention - Edit rules":5,"Cocoa":5,"✏️ Editing - Ingredients":5,"product-specific issue":5,"needs reprocessing":5,"🏭 Producers Platform - admin tools":5,"products without barcodes":5,"login":5,"💸  Prices":5,"matomo":5,"🔐 Auth":5,"nutrient-levels":5,"road-to-scores":5,"🎯 Big Bang for Your Time":5,"REDIS":5,"🌾 gluten":5,"NGINX":5,"Lists of products":5,"vitamins":5,"monitoring":5,"OxF":5,"variable-barcodes":5,"spanish":5,"👥 User support":5,"🏭 Producers Platform - acquisition":5,"score explainability":5,"untranslatable strings":5,"Products Recalls":5,"html":5,"gluten":5,"account deletion":5,"Users":5,"timeouts":5,"🇫🇷 France":5,"protected data":5,"Traces":5,"drip editing":4,"can-be-done-by-robotoff":4,"Alcohol":4,"data-quality-nutrition":4,"salt":4,"🌳 Forest Footprint":4,"diluted products":4,"OpenAPI":4,"producers platform - acquisition":4,"🗺️ Made Near Me":4,"Web components":4,"🧬 External taxonomies":4,"delta exports":4,".well-known":4,"🇬🇧 United Kingdom":4,"🌱 Vegan":4,"🧽 API - Quality":4,"🎨 Mockup required":4,"scores":4,"api auth":4,"🧽 Data quality - Remediation":4,"image recognition":4,"typing":4,"taxonomy translation":4,"power tools for contributors":4,"product-count page":4,"openfoodfacts-events":4,"Road to Doc":4,"pagination":4,"processing":4,"HTTPS":4,"newsletter":4,"Spellcheck":4,"needs more info":4,"Blocking Hunger Games":4,"seasonality support":4,"icons":4,"Belgium":4,"maps":4,"Reusers experience":4,"qrcode":4,"ciqual":4,"🧂 Salt":4,"india":4,"old-products":4,"🇩🇪 Germany":4,"russian":4,"impact":4,"not planned":3,"Scanbot":3,"tagline":3,"packaging_shapes":3,"user feedback":3,"🪶 Apache":3,"startup":3,"🧽 Data quality - edit rules":3,"US project":3,"🇵🇱 Polish":3,"data destroying issue":3,"glycemic index":3,"pull-request-available":3,"🤰 pregnancy \u0026 babies":3,"Requires HTTPS":3,"logs":3,"agribalyse":3,"solved in off explorer":3,"pregnancy \u0026 babies":3,"openfoodfacts-query":3,"Call for Proposals":3,"Road to community":3,"🔐 external auth service":3,"Server-driven editing":3,"obsolete products":3,"Vegetarian":3,"disk space":3,"editing-images":3,"mockup-required":3,"Fixed by Keycloak":3,"Products":3,"code pointer available":3,"best-before-dates":3,"🧬 Taxonomies - Rebuild":3,"producers platform - reengagement":3,"📍 geolite":3,"Ambiguous barcodes":3,"comments":3,"📦 Packaging shapes":3,"🏄‍♂️ good first issue":3,"not done":3,"open pet food facts":3,"Tests - ToDo":3,"🧪 integration tests":3,"🍬 Sugar":3,"Checked products":3,"🔐 Password reset":3,"Display":3,"us project":3,"RTL":3,"Dutch":3,"Open Products Facts":3,"Tags":3,"Greek":3,"image deletion":3,"✏️ Editing - drip editing":3,"manifest":3,"road to app":3,"duplicate":3,"marketing":3,"folksonomy project":3,"Minion":2,"🥚 eggs":2,"🇪🇺 Europe":2,"🖼️ Image refresh":2,"🇮🇳 India":2,"💥 Merge Conflicts":2,"📢 Marketing":2,"lazy-loading":2,"product deletion":2,"Nutri-Score v2":2,"knowledge panel actions":2,"ingredients editing":2,"wontfix":2,"🔖 🖼️ tag images":2,"Progressive Web App":2,"Producer platform - improvement opportunities":2,"🏭 Producers Platform - reengagement":2,"product reformulation":2,"Agribalyse":2,"non-food products":2,"Uncommitted assets":2,"indexing":2,"open food hunt":2,"API auth":2,"can be done by explorer":2,"regression":2,"user-support":2,"equivalents":2,"wine":2,"routing":2,"can't reproduce":2,"storage-instructions":2,"anonymous-edits":2,"postgresql":2,"🔀 Product alternatives":2,"preprod":2,"Account deletion":2,"crossplatform integration":2,"🚰 diluted products":2,"✏️ Editing - Basic details":2,"fishing":2,"slack-notifications":2,"health card":2,"EAN-8":2,"data donations":2,"Road to OxF":2,"✏️ Editing - image edition":2,"✅ task":2,"encoding":2,"knowledge panels for facets":2,"P5":2,"changelog":2,"⚙️ food preferences":2,"🏪 Stores":2,"halal":2,"Social media links":2,"🚦nutriscore":2,"config":2,"📨 Emails - Brevo":2,"💸 Prices":2,"FoodRepo":2,"fixed-via-userscript":2,"🥤 Gulp":2,"japan":2,"Product name":2,"science":2,"🍬 How much sugar":2,"polish":2,"Error pages":2,"spellcheck":2,"🔎 Search - Ranking":2,"🔒 Requires HTTPS":2,"Portuguese":2,"release-blocking-issue":2,"🇭🇷 Croatia":2,"Fruits \u0026 Vegetables":2,"checkbot":2,"invalid":2,"recipes":2,"deploy-dev":2,"eggs":2,"🇮🇪 Ireland":2,"producer platform - spam":2,"✏️ Editing - Images":2,"🇨🇱 Chile":2,"script-writing":2,"solution available":2,"odoo":2,"🇸🇪 Sweden":2,"Austria":2,"🥗 Ingredients - processing":2,"product page navigation":2,"Photo rotation":2,"Arabic":1,"Fixed via Userscript":1,"Recipe Estimator":1,"rate-limit":1,"Food supplements":1,"dataset creation":1,"colors":1,"degrated situations":1,"User engagement":1,"Knowledge panels - infoboxes":1,"segfault":1,"opposites - logic bombs":1,"🧪 needs tests":1,"on-the-fly quality checks":1,"autorelease: pending":1,"🛒 DriveOFF":1,"prepared nutrition":1,"RSS":1,"fixable-in-crowdin":1,"✏️ Editing - anonymous edits":1,"favicons":1,"Fields":1,"Czech":1,"needs a decision":1,"api quality":1,"france":1,"needs data analysis":1,"🧽  on-the-fly quality checks":1,"🇱🇹 Lithuania":1,"Road to editing":1,"teams":1,"🇧🇬 Bulgaria":1,"🇮🇹 Italy":1,"special-character-languages":1,"Ecobalyse":1,"API Read - Product":1,"argentina":1,"uservoice":1,"vegetarian":1,"shortcuts":1,"exports":1,"Catalan":1,"🔐 Password":1,"Partial barcode API":1,"food archeology":1,"🧽 Data quality - False positives":1,"🤳🥫 tagline":1,"Url":1,"power-user-script":1,"Contribalim":1,"Q1-2019":1,"regular expressions":1,"ImageMagick":1,"signup date":1,":star: top issues dashboard":1,"Non-ASCII":1,"Eco-Score":1,"URL":1,"data completion":1,"todo tests":1,"ingredients processing":1,"🌐 Timezones":1,"🧹 Linting":1,"SFTP":1,"stores":1,"charts":1,"SCSS":1,"🐍 Python":1,"user groups":1,"Request for Comments":1,"dependancies":1,"forest footprint":1,"Croatia":1,"📖 Knowledge panels - Data Quality":1,"sentry":1,"📖 Knowledge panels - Health":1,"🇨🇦 Canada":1,"meta":1,"search ranking":1,"documented":1,"humor":1,"csv exports":1,"taxonomy editor":1,"CRON":1,"🇺🇾 Uruguay":1,"lithuanian":1,"openapi":1,"🙅‍♀️ wontfix":1,"Taxonomies - Rebuild":1,"observability":1,"htaccess":1,"P30":1,"🤳🥫Scan Party":1,"need design":1,"Data extraction":1,"rtl":1,"basic information":1,"Ukrainian":1,"📨 Mail":1,"needs tests":1,"password reset":1,"📖 Knowledge Panels -":1,"infoboxes":1,"👥 User groups":1,"Legal":1,"🕰️ CRON":1,"debug":1,"update all products":1,"🧪 unit tests":1,"🔒 HTTPS":1,"lactose":1,"🇯🇵 Japan":1,"animal welfare":1,"🇳🇴 Norway":1,"GS1 GPC":1,"Knowledge panels - Health":1,"alternatives":1,"External taxonomies":1,"geolite":1,"foreign-products-stored-in-french":1,"language switcher":1,"producers platform - onboarding":1,"📖 Knowledge Panels - OBF":1,"Taxonomies":1,"Dark mode":1,"alcohol":1,"npm":1,"Top translators":1,"compare":1,"Scan Party":1,"apache":1,"🇦🇺 Australia":1,"🇸🇮 Slovenia":1,"documentation-update-required":1,"XML":1,"fructose":1,"CSRF":1,"producer onboarding":1,"keyboard shortcuts":1,"legacy":1,"Nutri-Score":1,"modals":1,"Analytics":1,"Buggy products":1,"🇱🇺 Luxembourg":1,"🍺 beers":1,"Time-sensitive issue":1,"beers":1,"🧬 Taxonomy editor":1,"deployed-on-dev-server":1,"education":1},"pull_request_labels_count":{"dependencies":1486,"🧬 Taxonomies":1405,"🧪 tests":860,"categories":844,"taxonomies":778,"Template::Toolkit":542,"📚 Documentation":454,"JavaScript":441,"javascript":425,"🥗🔍 Ingredients analysis":389,"Display":373,"github_actions":371,"ingredients":359,"GitHub Actions":356,"translations":337,"🥗 Ingredients":295,"💥 Merge Conflicts":295,"🌐 Translations":283,"tests":265,"🧴 Open Beauty Facts":222,"labels":210,"API":198,"🏭 Producers Platform":196,"Tags":191,"🧪 additives":185,"📸 Open Products Facts":170,"🧽 Data quality":160,"producers platform":156,"📖 Knowledge Panels":154,"i18n":153,"config":153,"Ingredients processing":152,"Products":147,"🐾 Open Pet Food Facts":139,"multilingual products":133,"Food.pm":132,"🚦 Nutri-Score":132,"ingredients analysis":130,"📦 Packaging":125,"documentation":120,"additives":119,"packaging":118,"ecoscore":116,"dependancies":108,"🧪 unit tests":107,"docker":104,"merge-conflicts":100,"🥜 Allergens":100,"autorelease: tagged":95,"🖼️ Images":95,"🧪 integration tests":91,"CSS":91,"knowledge-panels":90,"🐋 Docker":87,"👥 Users":85,"API v3":84,"🎁 donations":82,"Product Page":79,"Data import":78,"📍 Origins":74,"Site layout":73,"Attributes":73,"frontend":72,"open beauty facts":69,"autorelease: pending":68,":star: top pull request":64,"📍🏭 Packager codes":64,"NGINX":64,"German":61,"GS1":61,"export":59,"API WRITE":59,"📚 OpenAPI":59,"👮 Moderation":58,"🥗  Ingredients":58,"update all products":56,"product history":55,"Stale":55,"open pet food facts":55,"Open Products Facts":49,"data quality":47,"devops":46,"allergens":46,"🌱 Eco-Score":46,"static content":46,"taxonomy translation":44,"exports":44,"brands":43,"✏️ Editing":42,"2024 Paris Perl Hackathon":42,"data import":41,"Food groups":40,"ciqual":40,"css":40,"🏭 Orgs":40,"API READ":38,"Users":36,"images":36,"🇵🇱 Polish":35,"🇸🇪 Sweden":35,"MongoDB":35,"📦 Packaging shapes":34,"icons":33,"Web":32,"taxonomies rebuild":31,"🥤 Gulp":31,"✏️ Editing - Auto Suggest":31,"REDIS":30,"mongodb":30,"store":29,"bug":29,"🇭🇷 Croatia":29,"Croatia":29,"⏰ Stale":28,"file import":27,"OCR":27,"🏭 Producers Platform - Odoo":27,"🎯 P0":27,"editing":27,"lang":27,"packager codes":27,"refactor":26,"nova":26,"Scanbot":26,"performance":25,"Nova - Ultra-processed foods":25,"product attributes":25,"dev":24,"👩‍💻 DevOps":24,"Poland":24,"Paris Perl Hackathon":24,"Minion":23,"🔐 Password":23,"Taxonomies":23,"Perl":23,"🔎 Search":23,"🤳🥫 tagline":22,"Nutrients":22,"catalan":22,"unit tests":22,"recipes":21,"🏷️ Folksonomy Project":21,"ci":21,"Translations":21,"🇯🇵 Japan":21,"📨 Mail":21,"status system":20,"integration tests":20,"🇩🇰 Denmark":20,"personal search":20,"🌳 Forest Footprint":20,"🌱 Vegan":20,"🔐 Auth":20,"🤖 Robotoff":19,"API write":19,"🪶 Apache":19,"nutrients":18,"🕹️ Gamification":18,"facets":18,"🐛 bug":18,"🚅 Performance":17,"origins":17,"nginx":17,"Account deletion":17,"bulgaria":17,"tagline":17,"vitamins":16,"API read":16,"🍬 How much sugar":16,"design":16,"🎯 P1":15,"openfoodfacts-query":15,"🗺️ Made Near Me":15,"Recent changes":15,"Fruits \u0026 Vegetables":14,"data4good-environment":14,"Lists of products":13,"📨 Emails - Brevo":13,"nutrition facts":13,"Agribalyse":13,"checkbot":13,"Czech":13,"Text":13,"✨ Feature":13,"donations":13,"Nutri-Score v2":12,"wikidata":12,"forest footprint":12,"palm oil":12,"security":12,"dev journeys documentation":12,"search":12,"Stores":12,"🤳🥫 blocking mobile apps":12,"agribalyse":11,"Numbers":11,"URL":11,"Ecobalyse":11,"ingredients processing":10,"🧽  Data quality - Nutrition":10,"🇱🇹 Lithuania":10,"🏭 EQUADIS":10,"WikiData":10,"Web components":10,"folksonomy project":10,"systemd":10,":boom: Merge Conflicts":9,"Nutrition facts":9,"partners page":9,"🏭 Producer platform - improvement opportunities":9,"logs":9,"matomo":9,"logos":9,"carbon footprint":9,"🇺🇸 United States":9,"Countries":9,"Orgs":9,"accessibility ♿":9,"5 minute fix":8,"quality-facet":8,"python":8,"no-pr-activity":8,"barcodes":8,"MainCountries":8,"scan statistics":8,"Knowledge panels":8,"units":8,"CI":8,"Data export":8,"China":8,"data export":8,"packaging_shapes":8,"🌱 Green-Score":7,"🧽 Data quality - edit rules":7,"HTTPS":7,"✔︎ Spellcheck":7,"darkmode":7,"🇫🇷 France":7,"Uncommitted assets":7,"image upload":7,"🇳🇴 Norway":7,"autosuggest":7,"apache":7,"Vegetarian":7,"feature":7,"CIQUAL":7,"👥 User management":6,"Data exports":6,"responsive ux":6,"P1":6,"maintenance":6,"🏭 Producers Platform - data imports":6,"🥗 Ingredients - processing":6,"footer":6,"linked data":6,"hunger games":6,"product addition":6,"Denmark":6,"🤳🥫 mobile apps":6,"Spanish":6,"🧽 Data quality - Measure - Quality facets":6,"russian":5,"Allergens":5,"moderation":5,"foundation":5,"🍊 Open Food Facts":5,"🎯 P1 candidate":5,"new design":5,"🇫🇮 Finland":5,"⚖️ Quantity":5,"npm":5,"Austria":5,"admin tools":5,"🧽 Data quality - Remediation":5,"Mail":5,"advanced search":5,"Made Near Me":5,"gamification":5,"robotoff":5,"📍 geolite":5,"nutriscore":5,"🇮🇳 India":5,"🔖 🖼️ tag images":5,"🗺️ Maps":4,"🇧🇬 Bulgaria":4,"Dutch":4,"🧬 Taxonomies - Translation":4,"Nutri-Score":4,"🌾 gluten":4,"ingredient-list-cutting":4,"server":4,"special-diets":4,"📊 graphs":4,"script-writing":4,"obsolete products":4,"processing":4,"Czech republic":4,"location":4,"multingual products":4,"caching":4,"rate limiter":4,"🌐 i18n":4,"🔐 external auth service":4,"Cocoa":4,"serving size":4,"🇷🇴 Romania":4,"SCSS":4,"SEO":4,"🇨🇦 Canada":3,"Road to app":3,"📍 location":3,"Nutrient levels":3,"Makefile":3,"🇮🇪 Ireland":3,"graphs":3,"routing":3,"Signup Page":3,"🍬 Sugar":3,"Ingredients knowledge panel":3,"Tags.pm":3,"svg":3,"🕰️ CRON":3,"Portugal":3,"Contribalim":3,"🧬 Taxonomy editor":3,"nodejs":3,"fixed?":3,"offline mode":3,"🇬🇧 United Kingdom":3,"🇮🇱 Israel":3,"🧹 Linting":3,"teams":3,"needs deployment":3,"Power User Script":3,"geolite":3,"blocking mobile apps":3,"🚦Nutri-Score":3,"US project":3,"OpenAPI":3,".well-known":3,"3rd party contributions":3,"ready to merge":3,"FODMAP":3,"task":3,"infoboxes":3,"CORS":3,"🕷️ SEO":3,"pagination":3,"Cyprus":3,"documentation-update-required":3,"spanish":3,"🇮🇹 Italy":3,"🎨 Design":3,"postgresql":2,"newsletter":2,"📖 Knowledge Panels - For facets":2,"Italy":2,"microformats":2,"user-management":2,"needs help":2,"🏭 Producers Platform - acquisition":2,"🥚 eggs":2,"🧽 Quality facet":2,"knowledge panel actions":2,"Hungary":2,"Greek":2,"🇺🇸 USDA import":2,"lactose":2,"opposites - logic bombs":2,"Nutrition estimation":2,"🧽 Data quality - Prevention":2,"Legal":2,"editing-images":2,"quantity":2,"🖼️ Image upload":2,"openapi":2,"subdomains":2,"stores":2,"rtl":2,"elastic":2,"🔎  Search":2,"divinfood":2,"account deletion":2,"environment":2,"fishing":2,"Shared services":2,"deployed-on-dev-server":2,"Australia":2,"🔐 API auth":2,"installation":2,"✏️ Editing - Nutrition":2,"Fields":2,"OxF":2,"prometheus":2,"Alcohol":2,"🇸🇮 Slovenia":2,"gluten":2,"API Refactor":2,"language switcher":2,"Blocks":2,"elk":2,"external taxonomies":2,"monitoring":2,"disk space":2,"🇱🇺 Luxembourg":2,"averages by categories":2,"product examples":2,"Belgium":2,"manifest":2,"🧽  on-the-fly quality checks":2,"maps":2,"Privacy":2,"recommendations":2,"polish":2,"spellcheck":2,"🏭 AGENA3000":2,"nutrient-levels":2,"html":2,"Portuguese":2,"edit rules":2,"pregnancy \u0026 babies":2,"csv exports":2,"Road to Doc":2,"scores":2,"✏️ Editing - Images":2,"data-quality-nutrition":2,"Ireland":2,"STO":2,"Luxembourg":2,"🏭 Producers Platform - onboarding":2,"💸 Prices":2,"japan":1,"Food supplements":1,"🧽 Data Quality - Products stored in French":1,"🤳🥫 requires mobile changes":1,"🇵🇹 Portugal":1,"Q\u0026A":1,"india":1,"external auth service":1,"🐠 Fishing":1,"Requires HTTPS":1,"Wikidata":1,"infrastructure":1,"Animal welfare":1,"JSONL":1,"variable-barcodes":1,"blocking-smoothie":1,"🧪 ✅ Tested":1,"on-the-fly quality checks":1,"🇧🇷 Brazil":1,"wiki":1,"ketogenic diet":1,"Fixed ?":1,"fruits vegetables nuts estimate":1,"traces":1,"automated pr":1,"outreachy":1,"🇨🇭 Switzerland":1,"Url":1,"preprod":1,"Eco-Score":1,"open products facts":1,"todo tests":1,"🗄 Obsolete products":1,"SFTP":1,"🇹🇭 Thailand":1,"Bug in Pre-Production":1,"Spain":1,"brokenlinks":1,"seasonality support":1,"documented":1,"auth":1,"Knowledge panels - Health":1,"Reusers experience":1,"Road to editing":1,"animal welfare":1,"observability":1,"Blocking Hunger Games":1,"agena3000":1,"needs work":1,"product lists":1,"representative products":1,"release-blocking-issue":1,"🐍 Python":1,"CSV exports":1,"api auth":1,"GenAI":1,"indexing":1,"sto":1,"homepage":1,"GS1 GPC":1,"Producer platform - improvement opportunities":1,"verified to work in production":1,"Keyhole":1,"Progressive Web App":1,"🍷 wine":1,"user-support":1,"comments":1,"moving-images":1,"cropping":1,"us project":1,"Polish":1,"organic products":1,"power tools for contributors":1,"needs tests":1,"deploy-dev":1,"regression":1,"Producers - Product Enhancement Suggestions":1,"product rules":1,"Ukrainian":1,"non tech":1,"product reformulation":1,"Intake24":1,"blocking off explorer":1,"user groups":1,"P0":1,"⚙️ food preferences":1,"⏲️ 5 minute fix":1,"Analytics":1,"Top translators":1,"P3":1,"debug":1,"enhancement":1,"🌍 Multilingual products":1,"update-all-products":1,"glycemic index":1,"🇦🇺 Australia":1,"deployed in production":1,"lazy-loading":1,"🎨 New design":1,"🌽 Corn":1,"diluted products":1,"🔐 Password reset":1,"3rd party Knowledge Panels":1,"🇩🇪 Germany":1,"favicons":1,"profiles":1,"Dark mode":1,"auto-approve":1,"startup":1,"Social media links":1,"producer onboarding":1,"vegan":1,"markdown":1,"🍺 beers":1,"EAN-8":1},"issue_author_associations_count":{"MEMBER":2137,"CONTRIBUTOR":1556,"NONE":343,"COLLABORATOR":79},"pull_request_author_associations_count":{"CONTRIBUTOR":6551,"MEMBER":2793,"COLLABORATOR":718,"NONE":175},"issue_authors":{"teolemon":1640,"stephanegigandet":759,"aleene":199,"CharlesNepote":182,"alexgarel":159,"aleksejrs":99,"manon-corneille":98,"hangy":88,"TaciteOFF":68,"kyzh":40,"raphael0202":36,"g123k":30,"VaiTon":26,"AcuarioCat":25,"john-gom":24,"monsieurtanuki":21,"nicolasleger":18,"jayaddison":17,"Freso":16,"svensven":16,"October-Food-Facts":15,"yuktea":14,"Ban3":12,"bredowmax":12,"roshnaeem":11,"SantosSi":10,"Slawek234":10,"M123-dev":10,"ocervell":10,"gcalsmith":9,"benbenben2":9,"CloCkWeRX":8,"galnaf":7,"github-throwaway":7,"alexfauquette":6,"laulowen":6,"Jen-Lopez":6,"rbigueras":6,"zigouras":6,"Anubhav-Bhargava":5,"LandonPattison":5,"jasmeet0817":5,"HummingBrid":5,"sentry-io[bot]":5,"DanieliusAsm":5,"ashed":5,"4nt0ineB":5,"astrubel-zz":5,"mvark":4,"NerOcrO":4,"TheSussex":4,"N3jm4n":4,"dipietroR":4,"alemit":4,"fabricetheytaz":4,"jusdekiwi":4,"bigon":4,"sashabrava":4,"Kezxo":4,"PommeOrange147":4,"fuddl":3,"ghost":3,"fgouget":3,"pradumna-gautam":3,"syl10100":3,"rndblnch":3,"trendspotter":3,"openfoodfacts-bot":3,"otatadeabigail":3,"moon-rabbitOFF":3,"chk1":3,"fabi003":3,"szmi":3,"Naruyoko":3,"Valimp":3,"TechShooter":3,"jb1415":3,"Sarazine131":3,"rampmaster":3,"oliwuaa":3,"areebahmeddd":2,"Nymerea":2,"alexouille123":2,"rugk":2,"BenibenOFF":2,"yarons":2,"blazern":2,"JagjeevanAK":2,"john-hu":2,"ferb7o2":2,"philipbrembeck":2,"theedov":2,"norganna":2,"Sulstice":2,"KommX":2,"bcatelin":2,"squeak9":2,"oricdev":2,"Phyks":2,"teleboas":2,"archanox":2,"jxu":2,"MaximeLaurenty":2,"javichuOFF":2,"Cypresslin":2,"pamputt":2,"dhiraj-143r":2,"sgtSeme4ki":2,"lucaa":2,"ms10398":2,"OpenChris":2,"aquilax":2,"jforget":2,"Gongjuhyeon":2,"nazimboudeffa":2,"asmoth360":2,"mrmd8":2,"herau":2,"andrewhuanggg":2,"moreymat":1,"dependabot[bot]":1,"mahlzahn":1,"Pereradilon9":1,"sebeeek":1,"JieDiscovery":1,"saihtaM":1,"kmlhsn":1,"Nothingspecial99":1,"onemetafox":1,"hunsly":1,"alexk1923":1,"himanshisrestha":1,"milahu":1,"Abbas-Askari":1,"void0x23":1,"cutterkom":1,"cvettelina":1,"2jaeyeol":1,"chris-hatton":1,"IsaiahLevy":1,"kulizhsy":1,"mikejsdev":1,"verdie-g":1,"Mehak-Parveen":1,"AaronAsAChimp":1,"Gallantmayor":1,"Faltenreich":1,"vertigo220":1,"forenta":1,"twindel":1,"leonarf":1,"RotBolt":1,"elbeho":1,"albatrousse":1,"RiyanshiTomar":1,"FRAdrien":1,"hydrargyrum":1,"AnthonySchneider2000":1,"UlricusR":1,"domigmr":1,"tibberous":1,"Pawan8538":1,"jolesh":1,"JVillafruela":1,"Ov-ille":1,"cbachhuber":1,"prashantpatel0":1,"ovz93br43v7":1,"Searchingdays":1,"mik1xcz":1,"saivats":1,"Chocobozzz":1,"lukemorgan8064":1,"alifafaruk":1,"seniorm0ment":1,"harsh-791":1,"FoodCoach-App":1,"Vanamas":1,"JamesMahy":1,"swastikCommits":1,"Manu1400":1,"manoncorneille":1,"nothowstorygoes":1,"laralem":1,"duhow":1,"lukashroch":1,"EmilJunker":1,"diesieben07":1,"ygaspoz":1,"shahaman351":1,"josve05a":1,"tradmangh":1,"jchristin":1,"victorosorioparis":1,"yangar":1,"leohumnew":1,"astagi":1,"MichaelBarnett1111":1,"FredJul":1,"Hugo-De":1,"jnsereko":1,"Bartozzz":1,"3ph":1,"PhoenixOFF":1,"SaitejaKommi":1,"Ahson-Shaikh":1,"SebSwiss":1,"Xuan4781":1,"danielcavanagh":1,"RayanGoubet":1,"Sebleouf":1,"cannoyroy":1,"vanshikaarora":1,"zanovis":1,"Yoanndp":1,"natrius":1,"adeyanjufawaz":1,"woshilapin":1,"IceIsFrozen":1,"Telperion87":1,"aqkd1":1,"NamesNetworkNic":1,"A1CY0N":1,"Chri92000":1,"MarByteBeep":1,"UrbanFercec":1,"olboaz":1,"alfinal":1,"dlatchx":1,"azzsamir":1,"DamienMAYAUX":1,"mojoaxel":1,"maks-io":1,"oyenuga17":1,"Lunique":1,"jebarjonet":1,"bfourgeaud":1,"SoftSage07":1,"goerlitz":1,"FabienZE":1,"inflationsbereinigt":1,"e-dewailly":1,"fievx":1,"MonalikaPatnaik":1,"Areontar":1,"Diegovsky":1,"tovkal":1,"matotim":1,"raphodn":1,"22404sonalmishra":1,"TamannaVerma99":1,"Fienne":1,"Roxie-32":1,"Vedansh-Mittal":1,"github-actions[bot]":1,"ArchiMageAlex":1,"rursache":1,"deniger":1,"jodm":1,"zond":1,"JoseMoFi":1,"pepperino217":1,"guillaumegarcia13":1,"gilren":1,"k127":1,"prateekshac1":1,"denis-migdal":1,"kylesorkness":1},"pull_request_authors":{"stephanegigandet":1996,"teolemon":1687,"dependabot[bot]":1268,"moon-rabbitOFF":524,"alexgarel":502,"aleene":427,"hangy":370,"benbenben2":297,"Freso":242,"openfoodfacts-bot":236,"github-actions[bot]":198,"dipietroR":135,"dependabot-preview[bot]":133,"raphael0202":107,"svensven":94,"CharlesNepote":86,"4nt0ineB":83,"john-gom":76,"VaiTon":73,"Roto15":69,"JagjeevanAK":57,"roshnaeem":56,"Ban3":44,"OpenChris":43,"pauamma":42,"ocervell":42,"yuktea":39,"TheSussex":38,"Teiron":36,"jayaddison":35,"MonalikaPatnaik":32,"areeshatariq":29,"Copilot":27,"AcuarioCat":24,"shinjigi":23,"duhow":23,"github-throwaway":23,"areebahmeddd":23,"deveshidwivedi":22,"laralem":20,"Naruyoko":20,"Kout95":19,"mrmd8":19,"Roxie-32":19,"RayanGoubet":19,"blazern":18,"McCio":18,"ArturLange":18,"very-smartin":18,"himanshisrestha":17,"jolesh":17,"DanieliusAsm":15,"ginger51011":14,"Pawan8538":14,"manon-corneille":13,"albatrousse":13,"bernardlemoullec":13,"leonarf":13,"g123k":12,"Valimp":12,"Nothingspecial99":12,"kant":12,"pradumna-gautam":12,"Vic142":12,"TaciteOFF":11,"NerOcrO":10,"jnsereko":9,"BathoryPeter":8,"CloCkWeRX":8,"jforget":8,"aadak99":8,"LandonPattison":7,"zigouras":7,"anaritadauane":7,"eric-nguyen-cs":7,"foodietim":6,"Steinhagen":6,"muskangarg21":6,"krishita30j":6,"syl10100":6,"pratyaksh1610":6,"mahlzahn":6,"abderhman487":6,"Sneha6003":6,"agentic-commons-bot":6,"yarons":6,"Annieieieie":6,"subhwastaken":6,"TCatinaud":5,"tuukka":5,"damil":5,"RonanMorgan":5,"borrokk":5,"MaximeLaurenty":4,"himanshi-154":4,"oricdev":4,"KommX":4,"IsaiahLevy":4,"lan33":4,"sultanowski":4,"medape":4,"that1":4,"alexfauquette":4,"himanshipikachu":4,"tchen0125":4,"teleboas":4,"eseyman":4,"mike-lu1":4,"sandy9999":4,"tkbremnes":4,"lilymedway":4,"nmetifiot":4,"garvit-bhattt":4,"franiis":4,"vansasuu":4,"Strubbl":4,"ghost":3,"ganga-300":3,"mariali1":3,"nicolasleger":3,"oyenuga17":3,"astagi":3,"zond":3,"ferb7o2":3,"kirtanchandak":3,"diivi":3,"GendelfLugansk":3,"pranavchoudhary-tech":3,"Josckar":3,"Jen-Lopez":3,"smonff":3,"Payne680":3,"sumit-158":3,"Lunique":3,"FemmeNoire":3,"bazylevnik0":3,"arybhatt4533":3,"alexouille123":3,"M123-dev":3,"samtuckerdavis":3,"withthelemons":2,"alemit":2,"Cutypareek":2,"jeremyarancio":2,"alex-marty":2,"pilou-":2,"1DhruvPatel":2,"fuddl":2,"Shrutakeerti":2,"sgtSeme4ki":2,"Vicam":2,"elbeho":2,"UrbanFercec":2,"davisjrule":2,"andrewhuanggg":2,"twindel":2,"abbyrhart":2,"Aman-Jamshed":2,"srflp":2,"rajanarahul93":2,"andylin2004":2,"subi9":2,"harshithav-sys":2,"K13b3r":2,"Sakshamgupta90":2,"DhruvAwasthi":2,"rohan-mate-28":2,"chinon123":2,"tur-ium":2,"vanshikaarora":2,"rkiddy":2,"aadarsh-ram":2,"JieDiscovery":2,"k2s":2,"Etatdesprit":2,"BryanH01":2,"rpowis":2,"sidhansu10":2,"Vikas4245":2,"Eduardo-Vilas-Boas":2,"nuraiman":2,"Makitsu":2,"Dev-Ashank":2,"dolmen":2,"oxidn":2,"challengee":2,"albertaillet":2,"wobfan":2,"owusunp":2,"sparunakian":2,"saibimajdi":2,"snyk-bot":2,"TechShooter":2,"aleksejrs":2,"alifafaruk":2,"NooaLumi":2,"davidpryor":2,"k127":2,"dereineLauch":2,"priyanka0906":2,"reddam-charan-teja-reddy":1,"JulienPalard":1,"star-warrior":1,"Kezxo":1,"AlperMulayim":1,"tapaswenipathak":1,"ItshMoh":1,"gospodin55":1,"TonyTroeff":1,"aws-cdk-automation":1,"JohnNilsson":1,"yangsamtom-dotcom":1,"maxymus-1":1,"Codeioholic":1,"dennisahlqvist":1,"simonghrt":1,"jaens":1,"emmanuel-ferdman":1,"archanox":1,"GabrielBeFr":1,"dhruv1345":1,"simonj2":1,"57200":1,"shivangi3001":1,"Cypresslin":1,"adi-ray":1,"hannsen":1,"anthonyryan1":1,"michael-golden":1,"tachylatus":1,"leventgunay":1,"aakankshabhende":1,"iotaaxel":1,"JulieMaricicDetweiler":1,"sebeeek":1,"cquest":1,"jusfla":1,"dnim":1,"Luzifer":1,"Tanujgarg37":1,"laulowen":1,"azzsamir":1,"danwyk":1,"GRyabkin":1,"Mahendra-006":1,"ArishSultan":1,"achauve":1,"jalanyash":1,"helloworldtest123":1,"Victor-Hermes":1,"petervdv":1,"Dwarfex":1,"monkeywithacupcake":1,"KPreisner":1,"fossabot":1,"jainilDesai":1,"odin-h":1,"olivier5741":1,"pranjal2004838":1,"hstauff":1,"jhutchings1":1,"hakuamesan":1,"goverdhan07":1,"lucaspretti":1,"gayatrisinghf3-rgb":1,"sarthaklole":1,"PrajwalM2212":1,"omerfaruk-cakmak":1,"AnasDharar":1,"seanwessmith":1,"k3lyan":1,"aquilax":1,"utkarshkgithub":1,"yuri-ivanov1972":1,"bhavyaKhatri2703":1,"shamun-khatri":1,"omahs":1,"ms10398":1,"nithyaV-dev":1,"emmapeel2":1,"leonidlednev":1,"sulletf":1,"fmarghi":1,"code-a1":1,"IWouldShiverTheWholeNightThrough":1,"SantosSi":1,"advaitathreya":1,"Karljoones":1,"ShrutiPandey-4":1,"noatime":1,"CodeIsFire":1,"NightWinkle":1,"Jecrivaine":1,"NejmaCHAABANI":1,"davidoskky":1,"JBelcoco":1,"Lampone":1,"jasmeet0817":1,"prometheas":1,"EduardoPach":1,"roostwp07":1,"thestarsahil":1,"ditsuke":1,"Tomeshwari-02":1,"Shruti-S0405":1,"croesch":1,"paper42":1,"TheSanjBot":1,"c-schuhmann":1,"HimajPatil":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-29T00:00:07.761Z","repositories_count":16600882,"issues_count":43462897,"pull_requests_count":138523741,"authors_count":11572591,"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":{"papercuts":13,"blocking off explorer":10,"📖 Knowledge Panels":10,"Nutrition facts":9,"🏭 Producers Platform":5,"👩‍💻 DevOps":5,"Road to app":4,"📚 Documentation":4,"Fixed ?":4,"📸 Open Products Facts":4,"API":4,"API READ":3,"CORS":3,"🥗🔍 Ingredients analysis":3,"🌱 Green-Score":3,"🧽 Data quality":3,"🧬 Taxonomies":3,"🌐 Translations":3,"📍 Origins":2,"🎯 P1":2,"CSV exports":2,"Perl":2,"🔐 Auth":2,"GitHub Actions":2,"🏭 Producers Platform - data imports":2,"Product Page":2,"🤳🥫 blocking mobile apps":2,"dependencies":2,"labels":2,"✏️ Editing":2,"CI":2,"🧴 Open Beauty Facts":2,"🎯 P0":2,"needs reprocessing":1,"non-food products":1,"📦 Packaging":1,"💸  Prices":1,"💸 Prices":1,"Producer platform - improvement opportunities":1,"product-count page":1,"Products":1,"protected data":1,"qrcode":1,"REDIS":1,"Reusers experience":1,"🤖 Robotoff":1,"Russian":1,"SCSS":1,"🔎 Search":1,"🕷️ SEO":1,"serving size":1,"solved in off explorer":1,"static content":1,"🇸🇪 Sweden":1,"Translations":1,"🌱 Vegan":1,"Vegetarian":1,"🧪 additives":1,"Web components":1,"🥜 Allergens":1,"🔐 API auth":1,"API WRITE":1,"Attributes":1,"barcodes":1,"basic information":1,"Blocking Hunger Games":1,"brokenlinks":1,"caching":1,"Call for Proposals":1,"Catalan":1,"categories":1,"China":1,"CSS":1,"Czech":1,"🧽 Data quality - Measure - Quality facets":1,"🎨 Design":1,"dev":1,"✏️ Editing - Basic details":1,"✏️ Editing - Nutrition":1,"🔐 external auth service":1,"facets":1,"github_actions":1,"🌾 gluten":1,"health card":1,"homepage":1,"ingredients":1,"🥗 Ingredients":1,"ingredients analysis":1,"🤳🥫 mobile apps":1,"👮 Moderation":1,"monitoring":1},"past_year_pull_request_labels_count":{"🧬 Taxonomies":266,"🧪 tests":127,"🥗🔍 Ingredients analysis":126,"categories":108,"dependencies":47,"GitHub Actions":32,"📚 Documentation":31,"💥 Merge Conflicts":30,"🧴 Open Beauty Facts":29,"🌐 Translations":27,"config":23,"Ingredients processing":23,"Template::Toolkit":23,"🧪 additives":22,"Tags":21,"brands":21,"📸 Open Products Facts":20,"JavaScript":19,"API":17,"📖 Knowledge Panels":15,"🧽 Data quality":15,"multilingual products":15,"Display":14,"🐾 Open Pet Food Facts":13,"🧪 unit tests":13,"Nutrients":13,"github_actions":12,"🧪 integration tests":12,"🥜 Allergens":12,"📦 Packaging":12,"autorelease: pending":11,"Fruits \u0026 Vegetables":11,"Food.pm":10,"🏭 Producers Platform":10,"Products":9,"API WRITE":9,"API v3":9,"🎁 donations":9,"CSS":9,"📍 Origins":8,"autorelease: tagged":8,"👥 Users":8,"📚 OpenAPI":8,"REDIS":7,"Food groups":7,"🐋 Docker":7,"🚦 Nutri-Score":6,"👮 Moderation":6,"🇺🇸 United States":6,"🖼️ Images":6,"✏️ Editing - Auto Suggest":6,"🇸🇪 Sweden":6,"API READ":6,"✏️ Editing":6,"📍🏭 Packager codes":6,"units":5,"exports":5,"Web":5,"🔎 Search":5,"CI":4,"docker":4,"🇯🇵 Japan":4,"🏭 Producer platform - improvement opportunities":4,"🏭 Orgs":4,"🔐 Password":4,"checkbot":4,"Data import":4,"📦 Packaging shapes":4,":star: top pull request":4,"Attributes":4,"Site layout":4,"Scanbot":4,"store":4,"🌱 Vegan":3,"export":3,"update all products":3,"Nova - Ultra-processed foods":3,"Czech":3,"🌳 Forest Footprint":3,"CIQUAL":3,"matomo":3,"Stores":3,"Account deletion":3,"🎯 P0":2,"🕹️ Gamification":2,"German":2,"file import":2,"🇮🇳 India":2,"🤖 Robotoff":2,"Road to app":2,"📨 Emails - Brevo":2,"facets":2,"🧹 Linting":2,"logs":2,"🗺️ Made Near Me":2,"📨 Mail":2,"product history":2,"NGINX":2,"Numbers":2,"Czech republic":2,"dev":2,"👥 User management":2,"🍷 wine":1,"Agribalyse":1,"Alcohol":1,"Allergens":1,"🪶 Apache":1,"🇦🇺 Australia":1,"🔐 Auth":1,"Blocking Hunger Games":1,"🤳🥫 blocking mobile apps":1,"blocking off explorer":1,"🇧🇷 Brazil":1,"CORS":1,"Croatia":1,"Data export":1,"Data exports":1,"🧽 Data quality - Measure - Quality facets":1,"🇩🇰 Denmark":1,"🌱 Eco-Score":1,"🏭 EQUADIS":1,"Fields":1,"Fixed ?":1,"🏷️ Folksonomy Project":1,"🇫🇷 France":1,"frontend":1,"fruits vegetables nuts estimate":1,"🍬 How much sugar":1,"hunger games":1,"🖼️ Image upload":1,"lang":1,"npm":1,"nutrient-levels":1,"Nutrient levels":1,"Nutri-Score v2":1,"palm oil":1,"🚅 Performance":1,"Poland":1,"🇵🇹 Portugal":1,"Portuguese":1,"postgresql":1,"🏭 Producers Platform - onboarding":1,"Product Page":1,"regression":1,"representative products":1,"Reusers experience":1,"static content":1,"status system":1,"🔖 🖼️ tag images":1,"Taxonomies":1,"🧬 Taxonomy editor":1,"🇬🇧 United Kingdom":1,"🇺🇸 USDA import":1,"vitamins":1,".well-known":1,"Wikidata":1,"WikiData":1},"past_year_issue_author_associations_count":{"MEMBER":73,"CONTRIBUTOR":28,"NONE":18,"COLLABORATOR":5},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":336,"COLLABORATOR":85,"MEMBER":82,"NONE":22},"past_year_issue_authors":{"teolemon":60,"manon-corneille":5,"hangy":5,"CharlesNepote":4,"raphael0202":3,"alexgarel":3,"Freso":3,"stephanegigandet":2,"jxu":2,"jusdekiwi":2,"john-gom":2,"jayaddison":2,"VaiTon":2,"g123k":2,"fgouget":2,"dhiraj-143r":2,"aleene":2,"UrbanFercec":1,"Vanamas":1,"Vedansh-Mittal":1,"Xuan4781":1,"twindel":1,"tibberous":1,"TaciteOFF":1,"swastikCommits":1,"saivats":1,"SaitejaKommi":1,"openfoodfacts-bot":1,"OpenChris":1,"mvark":1,"moon-rabbitOFF":1,"monsieurtanuki":1,"mik1xcz":1,"lukashroch":1,"JagjeevanAK":1,"IceIsFrozen":1,"harsh-791":1,"gilren":1,"galnaf":1},"past_year_pull_request_authors":{"Freso":81,"stephanegigandet":61,"teolemon":56,"moon-rabbitOFF":45,"aleene":43,"openfoodfacts-bot":36,"dependabot[bot]":30,"Copilot":19,"ginger51011":14,"alexgarel":13,"john-gom":13,"svensven":9,"VaiTon":7,"subhwastaken":6,"agentic-commons-bot":6,"raphael0202":5,"leonarf":5,"hangy":5,"TaciteOFF":5,"JagjeevanAK":5,"benbenben2":4,"jayaddison":3,"ganga-300":3,"Teiron":3,"samtuckerdavis":3,"arybhatt4533":3,"tuukka":3,"pranavchoudhary-tech":3,"sidhansu10":2,"twindel":2,"oxidn":2,"nuraiman":2,"UrbanFercec":2,"Naruyoko":2,"Eduardo-Vilas-Boas":2,"harshithav-sys":2,"garvit-bhattt":2,"Unpublished":1,"utkarshkgithub":1,"Tomeshwari-02":1,"TheSanjBot":1,"Vic142":1,"AnasDharar":1,"yangsamtom-dotcom":1,"yuri-ivanov1972":1,"bhavyaKhatri2703":1,"ShrutiPandey-4":1,"seanwessmith":1,"sarthaklole":1,"roostwp07":1,"reddam-charan-teja-reddy":1,"pranjal2004838":1,"paper42":1,"CharlesNepote":1,"nithyaV-dev":1,"NightWinkle":1,"CodeIsFire":1,"Mahendra-006":1,"lucaspretti":1,"gayatrisinghf3-rgb":1},"maintainers":[{"login":"teolemon","count":3327,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/teolemon"},{"login":"alexgarel","count":661,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexgarel"},{"login":"hangy","count":458,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hangy"},{"login":"benbenben2","count":306,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/benbenben2"},{"login":"CharlesNepote","count":268,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CharlesNepote"},{"login":"Freso","count":166,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Freso"},{"login":"VaiTon","count":99,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/VaiTon"},{"login":"4nt0ineB","count":88,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/4nt0ineB"},{"login":"ocervell","count":52,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ocervell"},{"login":"g123k","count":38,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/g123k"},{"login":"MonalikaPatnaik","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MonalikaPatnaik"},{"login":"TheSussex","count":28,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TheSussex"},{"login":"areebahmeddd","count":25,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/areebahmeddd"},{"login":"nicolasleger","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nicolasleger"},{"login":"Roxie-32","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Roxie-32"},{"login":"RayanGoubet","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/RayanGoubet"},{"login":"Kout95","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Kout95"},{"login":"very-smartin","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/very-smartin"},{"login":"Valimp","count":15,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Valimp"},{"login":"alexfauquette","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexfauquette"},{"login":"github-throwaway","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/github-throwaway"},{"login":"TCatinaud","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TCatinaud"},{"login":"teleboas","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/teleboas"},{"login":"Anubhav-Bhargava","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Anubhav-Bhargava"},{"login":"astagi","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/astagi"},{"login":"M123-dev","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/M123-dev"},{"login":"PommeOrange147","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/PommeOrange147"},{"login":"LandonPattison","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/LandonPattison"},{"login":"sumit-158","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sumit-158"},{"login":"nazimboudeffa","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/nazimboudeffa"},{"login":"Sarazine131","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sarazine131"},{"login":"dolmen","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dolmen"},{"login":"priyanka0906","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/priyanka0906"},{"login":"raphodn","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/raphodn"},{"login":"KPreisner","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/KPreisner"},{"login":"danwyk","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danwyk"},{"login":"TonyTroeff","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TonyTroeff"},{"login":"Dwarfex","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Dwarfex"},{"login":"AlperMulayim","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/AlperMulayim"},{"login":"PrajwalM2212","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/PrajwalM2212"},{"login":"NejmaCHAABANI","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NejmaCHAABANI"},{"login":"Karljoones","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Karljoones"}],"active_maintainers":[{"login":"teolemon","count":115,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/teolemon"},{"login":"Freso","count":84,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Freso"},{"login":"alexgarel","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexgarel"},{"login":"hangy","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hangy"},{"login":"VaiTon","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/VaiTon"},{"login":"CharlesNepote","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CharlesNepote"},{"login":"benbenben2","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/benbenben2"},{"login":"g123k","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/g123k"}]},"events":{"total":{"CreateEvent":1093,"CommitCommentEvent":2,"ReleaseEvent":31,"DeleteEvent":954,"MemberEvent":7,"PullRequestEvent":2909,"ForkEvent":150,"DiscussionEvent":1,"IssuesEvent":761,"WatchEvent":211,"IssueCommentEvent":11888,"PushEvent":13184,"GollumEvent":1,"PullRequestReviewCommentEvent":1505,"PullRequestReviewEvent":2291},"last_year":{"ReleaseEvent":8,"DeleteEvent":394,"PullRequestEvent":1316,"ForkEvent":44,"DiscussionEvent":1,"IssuesEvent":159,"WatchEvent":69,"IssueCommentEvent":2145,"PushEvent":4286,"GollumEvent":1,"PullRequestReviewEvent":560,"PullRequestReviewCommentEvent":471,"CreateEvent":417}},"keywords":["allergens","allergies","crowdsourcing","database","environment","food","food-products","nutrition","perl","recycling"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/auto-assign-pr.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:17.549Z","updated_at":"2023-09-28T10:59:17.549Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/auto-assign-pr.yml","dependencies":[{"id":13995163579,"package_name":"toshimaru/auto-author-assign","ecosystem":"actions","requirements":"v1.6.2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/codeql-analysis.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:17.559Z","updated_at":"2023-09-28T10:59:17.559Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/codeql-analysis.yml","dependencies":[{"id":13995163580,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13995163581,"package_name":"github/codeql-action/init","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13995163582,"package_name":"github/codeql-action/autobuild","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13995163583,"package_name":"github/codeql-action/analyze","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/container-build.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:17.573Z","updated_at":"2023-09-28T10:59:17.573Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/container-build.yml","dependencies":[{"id":13995163584,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13995163585,"package_name":"docker/setup-buildx-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13995163586,"package_name":"docker/login-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13995163587,"package_name":"docker/metadata-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":13995163588,"package_name":"docker/build-push-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/container-deploy.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:17.583Z","updated_at":"2023-09-28T10:59:17.583Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/container-deploy.yml","dependencies":[{"id":13995163593,"package_name":"tomchv/wait-my-workflow","ecosystem":"actions","requirements":"v1.1.0","direct":true,"kind":"composite","optional":false},{"id":13995163760,"package_name":"appleboy/ssh-action","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":13995163761,"package_name":"frankie567/grafana-annotation-action","ecosystem":"actions","requirements":"v1.0.3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/crowdin-per-language.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:19.726Z","updated_at":"2023-09-28T10:59:19.726Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/crowdin-per-language.yml","dependencies":[{"id":13995165183,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13995165184,"package_name":"crowdin/github-action","ecosystem":"actions","requirements":"v1.13.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/crowdin.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:19.903Z","updated_at":"2023-09-28T10:59:19.903Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/crowdin.yml","dependencies":[{"id":13995165188,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13995165189,"package_name":"crowdin/github-action","ecosystem":"actions","requirements":"v1.13.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/generate-doc.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:19.975Z","updated_at":"2023-09-28T10:59:19.975Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/generate-doc.yml","dependencies":[{"id":13995165192,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13995165193,"package_name":"JamesIves/github-pages-deploy-action","ecosystem":"actions","requirements":"v4.4.3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/github-projects-ventilation.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:19.988Z","updated_at":"2023-09-28T10:59:19.988Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/github-projects-ventilation.yml","dependencies":[{"id":13995165194,"package_name":"actions/add-to-project","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/label.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.006Z","updated_at":"2023-09-28T10:59:20.006Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/label.yml","dependencies":[{"id":13995165196,"package_name":"actions/labeler","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/merge-conflict-autolabel.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.012Z","updated_at":"2023-09-28T10:59:20.012Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/merge-conflict-autolabel.yml","dependencies":[{"id":13995165197,"package_name":"mschilde/auto-label-merge-conflicts","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pull_request.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.023Z","updated_at":"2023-09-28T10:59:20.023Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/pull_request.yml","dependencies":[{"id":13995165200,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13995165201,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13995165202,"package_name":"ishworkh/docker-image-artifact-upload","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13995165203,"package_name":"ishworkh/docker-image-artifact-download","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13995165204,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release-please.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.030Z","updated_at":"2023-09-28T10:59:20.030Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/release-please.yml","dependencies":[{"id":13995165205,"package_name":"google-github-actions/release-please-action","ecosystem":"actions","requirements":"v3.7.11","direct":true,"kind":"composite","optional":false},{"id":13995165206,"package_name":"tomchv/wait-my-workflow","ecosystem":"actions","requirements":"v1.1.0","direct":true,"kind":"composite","optional":false},{"id":13995165207,"package_name":"svenstaro/upload-release-action","ecosystem":"actions","requirements":"2.7.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/semantic-pr.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.036Z","updated_at":"2023-09-28T10:59:20.036Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/semantic-pr.yml","dependencies":[{"id":13995165208,"package_name":"amannn/action-semantic-pull-request","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/top-issues.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.049Z","updated_at":"2023-09-28T10:59:20.049Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/top-issues.yml","dependencies":[{"id":13995165228,"package_name":"rickstaa/top-issues-action","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/translation-check.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.058Z","updated_at":"2023-09-28T10:59:20.058Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/translation-check.yml","dependencies":[{"id":13995165260,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.104Z","updated_at":"2023-09-28T10:59:20.104Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/Dockerfile","dependencies":[{"id":13995165263,"package_name":"debian","ecosystem":"docker","requirements":"bullseye","direct":true,"kind":"build","optional":false},{"id":13995165264,"package_name":"modperl","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false},{"id":13995165511,"package_name":"runnable","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:22.064Z","updated_at":"2023-09-28T10:59:22.064Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/docker-compose.yml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/api-linting.yml","sha":null,"kind":"manifest","created_at":"2026-08-06T11:20:16.832Z","updated_at":"2026-08-06T11:20:16.832Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/api-linting.yml","dependencies":[{"id":25909614995,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":25909614996,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":25909614997,"package_name":"stoplightio/spectral-action","ecosystem":"actions","requirements":"latest","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/packager-codes-refresh.yml","sha":null,"kind":"manifest","created_at":"2026-08-06T11:20:19.525Z","updated_at":"2026-08-06T11:20:19.525Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/packager-codes-refresh.yml","dependencies":[{"id":25909617950,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":25909617955,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":25909617958,"package_name":"mskri/check-uncommitted-changes-action","ecosystem":"actions","requirements":"v1.0.1","direct":true,"kind":"composite","optional":false},{"id":25909617960,"package_name":"peter-evans/create-pull-request","ecosystem":"actions","requirements":"v8","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr_actions.yml","sha":null,"kind":"manifest","created_at":"2026-08-06T11:20:19.868Z","updated_at":"2026-08-06T11:20:19.868Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/pr_actions.yml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/test-groups-management.yml","sha":null,"kind":"manifest","created_at":"2026-08-06T11:20:21.009Z","updated_at":"2026-08-06T11:20:21.009Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/test-groups-management.yml","dependencies":[{"id":25909618932,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":25909618933,"package_name":"actions/cache","ecosystem":"actions","requirements":"v6","direct":true,"kind":"composite","optional":false},{"id":25909618934,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false},{"id":25909618935,"package_name":"actions/github-script","ecosystem":"actions","requirements":"v9","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test-dynamic-grouping.yml","sha":null,"kind":"manifest","created_at":"2026-08-06T11:20:20.718Z","updated_at":"2026-08-06T11:20:20.718Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/test-dynamic-grouping.yml","dependencies":[{"id":25909618822,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"cpan","filepath":"cpanfile","sha":null,"kind":"manifest","created_at":"2026-08-06T11:20:21.520Z","updated_at":"2026-08-06T11:20:21.520Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/cpanfile","dependencies":[{"id":25909619229,"package_name":"Array::Diff","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909619537,"package_name":"CGI","ecosystem":"cpan","requirements":"==4.70","direct":true,"kind":"runtime","optional":false},{"id":25909619642,"package_name":"File::Slurp","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909619644,"package_name":"Tie::IxHash","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909619653,"package_name":"LWP::Authen::Digest","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620008,"package_name":"LWP::UserAgent","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620481,"package_name":"Image::Magick","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620648,"package_name":"XML::Encoding","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620649,"package_name":"MIME::Lite","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620659,"package_name":"MIME::Base32","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620660,"package_name":"Cache::Memcached::Fast","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620695,"package_name":"CHI","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909620778,"package_name":"JSON","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621128,"package_name":"JSON::PP","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621193,"package_name":"Cpanel::JSON::XS","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621194,"package_name":"JSON::MaybeXS","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621195,"package_name":"Clone","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621245,"package_name":"Crypt::PasswdMD5","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621696,"package_name":"Math::Random::Secure","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621706,"package_name":"Email::Stuffer","ecosystem":"cpan","requirements":"\u003e= 0.018","direct":true,"kind":"runtime","optional":false},{"id":25909621714,"package_name":"File::Copy::Recursive","ecosystem":"cpan","requirements":"\u003e= 0.45","direct":true,"kind":"runtime","optional":false},{"id":25909621373,"package_name":"Data::Table","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621374,"package_name":"Encode::Detect","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621376,"package_name":"Barcode::ZBar","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621386,"package_name":"XML::FeedPP","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621387,"package_name":"URI::Find","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621405,"package_name":"XML::Simple","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621407,"package_name":"experimental","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621440,"package_name":"Apache2::Request","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621524,"package_name":"Digest::MD5","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621538,"package_name":"Time::Local","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621539,"package_name":"Template","ecosystem":"cpan","requirements":"\u003e= 3.009","direct":true,"kind":"runtime","optional":false},{"id":25909621583,"package_name":"URI::Escape::XS","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909623202,"package_name":"Test::Perl::Critic","ecosystem":"cpan","requirements":"\u003e=1.04","direct":true,"kind":"develop","optional":false},{"id":25909623244,"package_name":"Perl::Critic","ecosystem":"cpan","requirements":"\u003e= 1.140, \u003c 2.0","direct":true,"kind":"develop","optional":false},{"id":25909623247,"package_name":"Devel::DebugHooks","ecosystem":"cpan","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":25909623250,"package_name":"Perl::Tidy","ecosystem":"cpan","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":25909623308,"package_name":"Perl::Critic","ecosystem":"cpan","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":25909623309,"package_name":"Devel::Cover","ecosystem":"cpan","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":25909623310,"package_name":"Devel::Cover::Report::Codecov","ecosystem":"cpan","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":25909623311,"package_name":"Devel::Cover::Report::Codecovbash","ecosystem":"cpan","requirements":"*","direct":true,"kind":"develop","optional":false},{"id":25909623312,"package_name":"Test2::Harness","ecosystem":"cpan","requirements":"\u003c2","direct":true,"kind":"develop","optional":false},{"id":25909623313,"package_name":"App::CPAN::SBOM","ecosystem":"cpan","requirements":"1.03","direct":true,"kind":"develop","optional":false},{"id":25909623333,"package_name":"Devel::REPL","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909623343,"package_name":"Term::ReadLine::Gnu","ecosystem":"cpan","requirements":"\u003e= 1.42, \u003c 2.0","direct":true,"kind":"runtime","optional":false},{"id":25909623344,"package_name":"Perl::LanguageServer","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909623345,"package_name":"Hash::SafeKeys","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621732,"package_name":"List::MoreUtils","ecosystem":"cpan","requirements":"\u003e= 0.430","direct":true,"kind":"runtime","optional":false},{"id":25909621742,"package_name":"Excel::Writer::XLSX","ecosystem":"cpan","requirements":"\u003e= 1.09","direct":true,"kind":"runtime","optional":false},{"id":25909621743,"package_name":"Pod::Simple::HTMLBatch","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621744,"package_name":"GeoIP2","ecosystem":"cpan","requirements":"\u003e= 2.006002, \u003c 3.0","direct":true,"kind":"runtime","optional":false},{"id":25909621756,"package_name":"Email::Valid","ecosystem":"cpan","requirements":"\u003e= 1.202, \u003c 2.0","direct":true,"kind":"runtime","optional":false},{"id":25909621757,"package_name":"Path::Tiny","ecosystem":"cpan","requirements":"\u003e= 0.118","direct":true,"kind":"runtime","optional":false},{"id":25909621769,"package_name":"XML::LibXSLT","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621810,"package_name":"XML::RPC","ecosystem":"cpan","requirements":"\u003e= 2","direct":true,"kind":"runtime","optional":false},{"id":25909621844,"package_name":"AnyEvent::RipeRedis","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621849,"package_name":"MongoDB","ecosystem":"cpan","requirements":"\u003e= 2.2.2, \u003c 2.3","direct":true,"kind":"runtime","optional":false},{"id":25909621866,"package_name":"Type::Tiny::XS","ecosystem":"cpan","requirements":"==0.025","direct":true,"kind":"runtime","optional":false},{"id":25909621868,"package_name":"GraphViz2","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621873,"package_name":"Algorithm::CheckDigits","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621900,"package_name":"Image::OCR::Tesseract","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621901,"package_name":"DateTime","ecosystem":"cpan","requirements":"\u003e= 1.54, \u003c 2.0","direct":true,"kind":"runtime","optional":false},{"id":25909621902,"package_name":"DateTime::Locale","ecosystem":"cpan","requirements":"\u003e= 1.32, \u003c 2.0","direct":true,"kind":"runtime","optional":false},{"id":25909621903,"package_name":"DateTime::Format::ISO8601","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621952,"package_name":"Crypt::ScryptKDF","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621958,"package_name":"Locale::Maketext::Lexicon::Getcontext","ecosystem":"cpan","requirements":"\u003e= 0.05","direct":true,"kind":"runtime","optional":false},{"id":25909621970,"package_name":"CLDR::Number::Format::Decimal","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621971,"package_name":"CLDR::Number::Format::Percent","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621972,"package_name":"CLDR::Number","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621973,"package_name":"Modern::Perl","ecosystem":"cpan","requirements":"\u003e= 1.20200211","direct":true,"kind":"runtime","optional":false},{"id":25909621977,"package_name":"Data::Dumper::AutoEncode","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621986,"package_name":"XML::Rules","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909621987,"package_name":"Text::CSV","ecosystem":"cpan","requirements":"\u003e= 2.01, \u003c 3.0","direct":true,"kind":"runtime","optional":false},{"id":25909622048,"package_name":"Text::CSV_XS","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622124,"package_name":"Text::Fuzzy","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622125,"package_name":"Spreadsheet::CSV","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622196,"package_name":"File::chmod::Recursive","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622220,"package_name":"Devel::Size","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622241,"package_name":"JSON::Create","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622242,"package_name":"JSON::Parse","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622243,"package_name":"Data::DeepAccess","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622244,"package_name":"XML::XML2JSON","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622251,"package_name":"Digest::SHA1","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622254,"package_name":"Data::Difference","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622255,"package_name":"Data::Compare","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622256,"package_name":"Mojolicious::Lite","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622257,"package_name":"Minion","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622258,"package_name":"Mojo::Pg","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622259,"package_name":"Log::Any","ecosystem":"cpan","requirements":"\u003e= 1.710, \u003c 2.0","direct":true,"kind":"runtime","optional":false},{"id":25909622269,"package_name":"Log::Log4perl","ecosystem":"cpan","requirements":"\u003e= 1.54, \u003c 2.0","direct":true,"kind":"runtime","optional":false},{"id":25909622270,"package_name":"Log::Any::Adapter::Log4perl","ecosystem":"cpan","requirements":"\u003e= 0.09","direct":true,"kind":"runtime","optional":false},{"id":25909622271,"package_name":"LWP::UserAgent::Plugin","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622318,"package_name":"LWP::UserAgent::Plugin::Retry","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622320,"package_name":"AnyEvent","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622323,"package_name":"AnyEvent::Inotify::Simple","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622324,"package_name":"Apache::Bootstrap","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622325,"package_name":"Apache2::Connection::XForwardedFor","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622326,"package_name":"GS1::SyntaxEngine::FFI","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622327,"package_name":"Imager","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622328,"package_name":"Imager::zxing","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622329,"package_name":"Imager::File::AVIF","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622356,"package_name":"Imager::File::HEIF","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622357,"package_name":"Imager::File::JPEG","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622358,"package_name":"Imager::File::PNG","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622359,"package_name":"Imager::File::WEBP","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622360,"package_name":"OIDC::Lite","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622361,"package_name":"Crypt::JWT","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622362,"package_name":"Module::Load","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622363,"package_name":"Time::HiRes","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622364,"package_name":"Text::Levenshtein","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622369,"package_name":"Net::CIDR","ecosystem":"cpan","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25909622374,"package_name":"Test2::V0","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622387,"package_name":"Mock::Quick","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622388,"package_name":"Test::Files","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622566,"package_name":"File::Spec","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622567,"package_name":"Log::Any::Adapter::TAP","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622568,"package_name":"IO::Capture::Stdout::Extended","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622591,"package_name":"IO::Capture::Stderr::Extended","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622592,"package_name":"HTTP::Cookies","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622602,"package_name":"File::Tail","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622842,"package_name":"Test2::Plugin::UTF8","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622843,"package_name":"Devel::Cover","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622844,"package_name":"Devel::Cover::Report::Codecov","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622845,"package_name":"Devel::Cover::Report::Codecovbash","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622847,"package_name":"Test::Fake::HTTPD","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622937,"package_name":"URL::Encode","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622938,"package_name":"Test::File::Contents","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909622939,"package_name":"FindBin","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909623017,"package_name":"Test::Pod","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false},{"id":25909623201,"package_name":"UUID","ecosystem":"cpan","requirements":"*","direct":true,"kind":"test","optional":false}]}],"score":13.70613644302633,"created_at":"2023-09-11T11:54:36.880Z","updated_at":"2026-08-29T21:35:11.604Z","avatar_url":"https://github.com/openfoodfacts.png","language":"HTML","category":"Consumption","sub_category":"Agriculture and Nutrition","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://static.openfoodfacts.org/images/logos/off-logo-horizontal-dark.png?refresh_github_cache=1\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://static.openfoodfacts.org/images/logos/off-logo-horizontal-light.png?refresh_github_cache=1\"\u003e\n  \u003cimg height=\"48\" src=\"https://static.openfoodfacts.org/images/logos/off-logo-horizontal-light.svg\"/\u003e\n\u003c/picture\u003e\n\n\n# Open Food Facts - Product Opener (Web Server)\n\n[![Project Status](http://opensource.box.com/badges/active.svg)](http://opensource.box.com/badges)\n[![Crowdin](https://d322cqt584bo4o.cloudfront.net/openfoodfacts/localized.svg)](https://translate.openfoodfacts.org/)\n[![Open Source Helpers](https://www.codetriage.com/openfoodfacts/openfoodfacts-server/badges/users.svg)](https://www.codetriage.com/openfoodfacts/openfoodfacts-server)\n[![Backers on Open Collective](https://opencollective.com/openfoodfacts-server/backers/badge.svg)](#backers)\n[![Sponsors on Open Collective](https://opencollective.com/openfoodfacts-server/sponsors/badge.svg)](#sponsors)\n![GitHub language count](https://img.shields.io/github/languages/count/openfoodfacts/openfoodfacts-server)\n![GitHub top language](https://img.shields.io/github/languages/top/openfoodfacts/openfoodfacts-server)\n![GitHub last commit](https://img.shields.io/github/last-commit/openfoodfacts/openfoodfacts-server)\n![Github Repo Size](https://img.shields.io/github/repo-size/openfoodfacts/openfoodfacts-server)\n\n## Tests\n\n[![Pull Requests](https://github.com/openfoodfacts/openfoodfacts-server/actions/workflows/pull_request.yml/badge.svg)](https://github.com/openfoodfacts/openfoodfacts-server/actions/workflows/pull_request.yml)\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch2\u003e What is Product Opener? \u003c/h2\u003e\u003c/summary\u003e\n\n**Product Opener** is the server software for **Open Food Facts** and **Open Beauty Facts**. It is released under the AGPL license and is being developed in Perl, HTML and JavaScript as [Free and Open-Source Software](https://en.wikipedia.org/wiki/Free_and_open-source_software).\n\nIt works together with [Robotoff](https://github.com/openfoodfacts/robotoff), Open Food Facts' AI system (in Python, which can also be installed locally) and the [Open Food Facts apps](https://github.com/openfoodfacts/smooth-app) (which can work with your local instance after enabling dev mode)\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch2\u003e What is Open Food Facts? \u003c/h2\u003e\u003c/summary\u003e\n\n### A food product database\n\nOpen Food Facts is a database of food products with ingredients, allergens, nutritional facts and all the tidbits of information that is available on various product labels.\n\n### Made by everyone\n\nOpen Food Facts is a non-profit association of volunteers.\n25.000+ contributors like you have added 1.7 million + products from 150 countries using our Android, iPhone or Windows Phone app or their camera to scan barcodes and upload pictures of products and their labels.\n\n### For everyone\n\nData about food is of public interest and has to be open (i.e available to everyone). The complete database is published as open data and can be reused by anyone and for any use. Check-out the cool reuses or make your own!\n\u003c/details\u003e\n\n- \u003chttps://world.openfoodfacts.org\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch2\u003eWeekly meetings\u003c/h2\u003e\u003c/summary\u003e\n\n* We e-meet Mondays at 16:00 Paris Time (15:00 London Time, 20:30 IST, 07:00 AM PT)\n* ![Google Meet](https://img.shields.io/badge/Google%20Meet-00897B?logo=google-meet\u0026logoColor=white) Video call link: https://meet.google.com/nnw-qswu-hza\n* Join by phone: https://tel.meet/nnw-qswu-hza?pin=2111028061202\n* Add the Event to your Calendar by [adding the Open Food Facts community calendar to your calendar](https://wiki.openfoodfacts.org/Events)\n* [Weekly Agenda](https://drive.google.com/open?id=1LL8-aiSF482xaJ1o0AKmhXB5QWfVE0_jzvYakq3VXys): please add the Agenda items as early as you can. \n* Make sure to check the Agenda items in advance of the meeting, so that we have the most informed discussions possible. \n* The meeting will handle Agenda items first, and if time permits, collaborative bug triage.\n* We strive to timebox the core of the meeting (decision making) to 30 minutes, with an optional free discussion/live debugging afterwards.\n* We take comprehensive notes in the Weekly Agenda of agenda item discussions and of decisions taken.\n\u003c/details\u003e\n\n## Feature Sprint \n- We use feature-based sprints, [tracked here](https://github.com/orgs/openfoodfacts/projects/32)\n\n## User interface\n-  [![Figma](https://img.shields.io/badge/figma-%23F24E1E.svg?logo=figma\u0026logoColor=white) Mockups on the current design and future plans to discuss](https://www.figma.com/file/Qg9URUyrjHgYmnDHXRsTTB/New-website-design-(2022)-(Quentin)?t=00ZMlgxe590W8TRY-0)\n\n## Priorities\n\n* [Top issues](https://github.com/openfoodfacts/openfoodfacts-server/issues/7374)\n* [P1 problems](https://github.com/openfoodfacts/openfoodfacts-server/labels/P0,P1)\n* [P1 candidates](https://github.com/openfoodfacts/openfoodfacts-server/labels/P1%20candidate)\n* Please add roadmaps here\n\n\u003c!-- ## Libraries used --\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003ch2\u003eHow do I get started? \u003c/h2\u003e\u003c/summary\u003e\n\n* Join us on Slack at \u003chttps://openfoodfacts.slack.com/\u003e in the channels: `#api`, `#productopener`, `#dev`.\n* [API v2 Documentation (WIP)](https://openfoodfacts.github.io/openfoodfacts-server/api/ref-v2/) ([source](https://github.com/openfoodfacts/openfoodfacts-server/tree/main/docs/api/ref/api.yml))\n\n* Developer documentation:\n  * [Server Documentation](https://openfoodfacts.github.io/openfoodfacts-server/)\n  * [Quick start guide (Docker)](./docs/dev/how-to-quick-start-guide.md)\n  * [Developer guide (Docker)](./docs/dev/how-to-develop-using-docker.md)\n  * [Developer guide (Gitpod)](./docs/dev/how-to-use-gitpod.md)\n  * Configuration [TBA]\n  * Dependencies [TBA]\n  * Database configuration [TBA]\n  * How to run tests [TBA]\n  * [Perl modules documentation (POD)](https://openfoodfacts.github.io/dev/ref-perl/)\n\n\nNote: documentation follows the [Diátaxis Framework](https://diataxis.fr/)\n\u003c/details\u003e\n\n\n\n\n## Contribution guidelines\n\nIf you're new to Open-Source, we recommend you to check out our [_Contributing Guidelines_](https://github.com/openfoodfacts/openfoodfacts-server/blob/master/CONTRIBUTING.md). Feel free to fork the project and send us a pull request.\n\n* Writing tests\n* Code review\n* Other guidelines\n* Please add new features to the CHANGELOG.md file before or after merge to make testing easier\n\n## Reporting problems or asking for a feature\n\nHave a bug or a feature request? Please search for existing and closed issues. If your problem or idea is not addressed yet, please [open a new issue](https://github.com/openfoodfacts/openfoodfacts-server/issues). You can ask directly in the discussion room if you're not sure\n\n## Translate Open Food Facts in your language\n\nYou can help translate the Open Food Facts web version and the app at :\n\u003chttps://translate.openfoodfacts.org/\u003e (no technical knowledge required, takes a minute to signup)\n\n## Helping with HTML and CSS\n\nWe have [templatized](https://github.com/openfoodfacts/openfoodfacts-server/tree/master/templates) Product Opener, we use Gulp and NPM, but you'll need to run the Product Opener docker to be able to see the result (see the How do I get set up? section).\nIn particular, you can [help with issues on the new design](https://github.com/openfoodfacts/openfoodfacts-server/issues?q=is%3Aissue+is%3Aopen+label%3A%22new+design%22).\n\n### Who do I talk to?\n\n* Join our discussion room at \u003chttps://slack.openfoodfacts.org/\u003e Make sure to join the #productopener and #productopener-alerts channels. Stéphane, Pierre, Charles or Hangy will be around to help you get started.\n\n## Contributors\n\nThis project exists thanks to all the people who contribute.\n\u003ca href=\"https://github.com/openfoodfacts/openfoodfacts-server/graphs/contributors\"\u003e\u003cimg src=\"https://contrib.rocks/image?repo=openfoodfacts/openfoodfacts-server\u0026columns=16\" /\u003e\u003c/a\u003e\n\n## Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/openfoodfacts-server#backer)]\n\n\u003ca href=\"https://opencollective.com/openfoodfacts-server#backers\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/backers.svg?width=890\"\u003e\u003c/a\u003e\n\n\n## Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor](https://opencollective.com/openfoodfacts-server#sponsor)\n\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/openfoodfacts-server/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/openfoodfacts-server/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://nlnet.nl/\"\u003e\u003cimg style=\"height:100px\" src=\"https://static.openfoodfacts.org/images/misc/nlnet_logo.svg\" alt=\"Logo NLnet: abstract logo of four people seen from above Logo NGI Zero: letterlogo shaped like a tag\"\u003e\u003c/a\u003e\n\nOpen Food Facts Personal Search project was funded through the \u003ca href=\"https://nlnet.nl/discovery/\"\u003eNGI0 Discovery\u003c/a\u003e Fund,\na fund established by NLnet with financial support from the European Commission's \u003ca href=\"https://ngi.eu\"\u003eNext Generation Internet\u003c/a\u003e programme.\n","funding_links":["https://opencollective.com/openfoodfacts-server","https://github.com/sponsors/openfoodfacts","https://donate.openfoodfacts.org"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["ingredients","dart","dartlang","kotlin-android","gsoc","mobile-app","flutter-app","nutriscore","gamification","kibana"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/1092","html_url":"https://ost.ecosyste.ms/projects/1092"}