{"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-04-08T03:30:37.931Z","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-02-26T17:25:13.000Z","size":2802532,"stargazers_count":942,"open_issues_count":1715,"forks_count":564,"subscribers_count":30,"default_branch":"main","last_synced_at":"2026-02-26T20:37:22.670Z","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,"dco":null,"cla":null}},"created_at":"2013-11-04T14:23:24.000Z","updated_at":"2026-02-26T17:23:01.000Z","dependencies_parsed_at":"2023-10-15T16:42:57.353Z","dependency_job_id":"167d8a3d-694d-4a90-ab01-a5bd04cd6d99","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":118,"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":29888149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T07:54:54.515Z","status":"ssl_error","status_checked_at":"2026-02-27T07:54:49.177Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"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,"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"}},"html_url":"https://github.com/openfoodfacts","funding_links":["https://opencollective.com/openfoodfacts-server","https://github.com/sponsors/openfoodfacts","https://donate.openfoodfacts.org"],"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":32403,"total_committers":284,"total_bot_commits":894,"total_bot_committers":3,"mean_commits":114.09507042253522,"dds":0.41341851063173163,"past_year_total_commits":1056,"past_year_total_committers":66,"past_year_total_bot_commits":105,"past_year_total_bot_committers":1,"past_year_mean_commits":16.0,"past_year_dds":0.8579545454545454,"last_synced_at":"2026-03-13T10:40:18.640Z","last_synced_commit":"fb2ea1267e7a25638a6e728ce80127007cfdf39b","created_at":"2023-03-27T11:50:02.024Z","updated_at":"2026-03-13T10:20:57.249Z","committers":[{"name":"Pierre Slamich","email":"teolemon","login":"teolemon","count":19007},{"name":"Stéphane Gigandet","email":"stephane@openfoodfacts.org","login":"stephanegigandet","count":3904},{"name":"Arnaud Leene","email":"aleene@gmail.com","login":"aleene","count":2802},{"name":"hangy","email":"hangy@hangy.de","login":"hangy","count":819},{"name":"moon-rabbitOFF","email":"34795011+moon-rabbitOFF","login":"moon-rabbitOFF","count":676},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":602},{"name":"Alex Garel","email":"alex@openfoodfacts.org","login":"alexgarel","count":393},{"name":"Olivier Cervello","email":"ocervello@google.com","login":null,"count":392},{"name":"Sven","email":"svensven","login":"svensven","count":391},{"name":"benbenben2","email":"110821832+benbenben2","login":"benbenben2","count":215},{"name":"AcuarioCat","email":"nigel@ntpworld.co.uk","login":"AcuarioCat","count":188},{"name":"Freso","email":"freso.dk@gmail.com","login":"Freso","count":181},{"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":133},{"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":"dipietroR","email":"66142242+dipietroR","login":"dipietroR","count":122},{"name":"VaiTon","email":"eyadlorenzo@gmail.com","login":"VaiTon","count":119},{"name":"Charles Nepote","email":"charles@nepote.org","login":"CharlesNepote","count":115},{"name":"Raphaël Bournhonesque","email":"raphael0202","login":"raphael0202","count":96},{"name":"areeshatariq","email":"areeshatariq02@gmail.com","login":"areeshatariq","count":94},{"name":"root","email":"root@ns3135968.ip-51-77-65.eu","login":null,"count":74},{"name":"john-gom","email":"116556069+john-gom","login":"john-gom","count":65},{"name":"Jagjeevan","email":"83103469+JagjeevanAK","login":"JagjeevanAK","count":59},{"name":"Roto15","email":"99144065+Roto15","login":"Roto15","count":52},{"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":"Alex","email":"alex@Alexs-MacBook-Pro.local","login":"bradfora","count":32},{"name":"mrmd8","email":"74515255+mrmd8","login":"mrmd8","count":31},{"name":"James Addison","email":"55152140+jayaddison","login":"jayaddison","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":"David Girón","email":"contacto@duhowpi.net","login":"duhow","count":24},{"name":"Pau Amma","email":"pauamma@gundo.com","login":"pauamma","count":24},{"name":"mahlzahn","email":"6549824+mahlzahn","login":"mahlzahn","count":24},{"name":"Teiron","email":"12804636+Teiron","login":"Teiron","count":23},{"name":"System Administrator","email":"root@SlamBook-2.local","login":null,"count":20},{"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":"Daniel O'Connor","email":"daniel.oconnor@gmail.com","login":"CloCkWeRX","count":14},{"name":"Artur H. Lange","email":"ArturLange","login":"ArturLange","count":14},{"name":"Danielius Ašmontas","email":"dan.asmontas@gmail.com","login":"DanieliusAsm","count":14},{"name":"alex","email":"Alex Garel","login":null,"count":13},{"name":"Sebastien Aperghis-Tramoni","email":"sebastien@aperghis.net","login":"maddingue","count":13},{"name":"Julien","email":"120013023+albatrousse","login":"albatrousse","count":12},{"name":"Yaron Shahrabani","email":"sh.yaron@gmail.com","login":"yarons","count":12},{"name":"Raphaël Bournhonesque","email":"raphael@mppteam.com","login":"rbournhonesque","count":12},{"name":"Manon Corneille","email":"104015489+manon-corneille","login":"manon-corneille","count":12},{"name":"Malte","email":"25488086+github-throwaway","login":"github-throwaway","count":11},{"name":"Dhiraj Rathod","email":"2102508740@svyasa-sas.edu.in","login":"dhiraj-143r","count":11},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":11},{"name":"syl10100","email":"45109552+syl10100","login":"syl10100","count":11},{"name":"Leonard","email":"leonard.michelet@gmail.com","login":"leonarf","count":10},{"name":"RayanGoubet","email":"156110537+RayanGoubet","login":"RayanGoubet","count":10},{"name":"Valimp","email":"112864841+Valimp","login":"Valimp","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":"Naruyoko","email":"naru519372@gmail.com","login":"Naruyoko","count":9},{"name":"Crowdin Bot","email":"support+bot@crowdin.com","login":"crowdin-bot","count":8},{"name":"Pierre Slamich","email":"pierreslam@Slambook.local","login":null,"count":7},{"name":"Péter Báthory","email":"peter.bathory@cartographia.hu","login":null,"count":7},{"name":"Darío Hereñú","email":"magallania@gmail.com","login":"kant","count":7},{"name":"Edouard Marquez","email":"g123k","login":"g123k","count":7},{"name":"K13b3r","email":"klber.eu@gmail.com","login":"K13b3r","count":7},{"name":"himanshisrestha","email":"135853264+himanshisrestha","login":"himanshisrestha","count":7},{"name":"Bernard","email":"53179327+bernardlemoullec","login":"bernardlemoullec","count":6},{"name":"Deveshi Dwivedi","email":"120312681+deveshidwivedi","login":"deveshidwivedi","count":6},{"name":"Nothingspecial99","email":"122666701+Nothingspecial99","login":"Nothingspecial99","count":6},{"name":"very-smartin","email":"martin.cesb@gmail.com","login":"very-smartin","count":6},{"name":"Pratyaksh Khurana","email":"pratyakshkhuranaofficial@gmail.com","login":"pratyaksh1610","count":6},{"name":"Tacite","email":"TaciteOFF","login":"TaciteOFF","count":6},{"name":"mariali1","email":"63364401+mariali1","login":"mariali1","count":6},{"name":"sl956","email":"github@vince.eu.org","login":"offvince","count":6},{"name":"Annieieieie","email":"112327071+Annieieieie","login":"Annieieieie","count":5},{"name":"Areeb Ahmed","email":"135235925+areebahmeddd","login":"areebahmeddd","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":"Pradumna","email":"65444978+pradumna-gautam","login":"pradumna-gautam","count":5},{"name":"Vic142","email":"144172903+Vic142","login":"Vic142","count":5},{"name":"Jen","email":"lopzjcan@gmail.com","login":null,"count":5},{"name":"off","email":"off@openfoodfacts.org","login":null,"count":5},{"name":"Viorel-Catalin Rapiteanu","email":"rapiteanu.catalin@gmail.com","login":"Steinhagen","count":5},{"name":"muskangarg21","email":"muskan@iitk.ac.in","login":"muskangarg21","count":5},{"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":"Kunal Gupta","email":"2007guptakunal@gmail.com","login":"Kunal241207","count":4},{"name":"Lunique","email":"lunasmoonlady@yahoo.de","login":"Lunique","count":4},{"name":"MaximeLaurenty","email":"MaximeLaurenty","login":"MaximeLaurenty","count":4},{"name":"Strubbl","email":"97055+Strubbl","login":"Strubbl","count":4},{"name":"sandy9999","email":"luckysandy99@gmail.com","login":"sandy9999","count":4},{"name":"tur-ium","email":"tur-ium","login":"tur-ium","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":"root","email":"root@openfoodfacts.org","login":null,"count":4},{"name":"fuddl","email":"imnothere39+github@gmail.com","login":"fuddl","count":4},{"name":"zond","email":"zondolfin@gmail.com","login":"zond","count":4},{"name":"Jean Forget","email":"JFORGET@cpan.org","login":"jforget","count":4},{"name":"Pranjal J","email":"136667416+pranjal2004838","login":"pranjal2004838","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":"Sam Tucker-Davis","email":"126325182+stuckvgn","login":"stuckvgn","count":3},{"name":"Sneha6003","email":"147996970+Sneha6003","login":"Sneha6003","count":3},{"name":"Sumit Kashyap","email":"mr.sumitkrr@gmail.com","login":"sumit-158","count":3},{"name":"Thomas Catinaud Taris","email":"5670642+TCatinaud","login":"TCatinaud","count":3},{"name":"Tuukka Hastrup","email":"Tuukka.Hastrup@iki.fi","login":"tuukka","count":3},{"name":"foodietim","email":"157665402+foodietim","login":"foodietim","count":3},{"name":"Krishita Jain","email":"66058206+krishita30j","login":"krishita30j","count":3},{"name":"Divyansh Singh","email":"divyanshanandsingh@gmail.com","login":"diivi","count":3},{"name":"Nico Zigouras","email":"nunya@biz.com","login":null,"count":3},{"name":"odtvince","email":"vince@data.gouv.fr","login":"odtvince","count":3},{"name":"sebeeek","email":"sebastien.abeille@gmail.com","login":"sebeeek","count":3},{"name":"Andrea Stagi","email":"stagi.andrea@gmail.com","login":"astagi","count":3},{"name":"Lhoutre","email":"lhoumeau.maxime@gmail.com","login":"Makitsu","count":3},{"name":"Abderhman G. Zaki","email":"151753026+abderhman487","login":"abderhman487","count":2},{"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":"Arybhatt","email":"bhattarya4533@gmail.com","login":"arybhatt4533","count":2},{"name":"Aadarsh A","email":"aadarsh.ram@gmail.com","login":"aadarsh-ram","count":2},{"name":"Arnaud Leene","email":"aleene@ns3135968.ip-51-77-65.eu","login":null,"count":2},{"name":"Florentin Raud","email":"florentin.raud@gmail.com","login":null,"count":2},{"name":"Roto15","email":"rotomoto@duck.com","login":null,"count":2},{"name":"KommX","email":"","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":"krzeszewskipiotr@gmail.com","login":"franiis","count":2},{"name":"borrokk","email":"64474095+borrokk","login":"borrokk","count":2},{"name":"fmarghi","email":"dev@liame.xyz","login":"fmarghi","count":2},{"name":"k2s","email":"martin.minka@gmail.com","login":"k2s","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":"vanshikaarora","email":"vanshikaa937@gmail.com","login":"vanshikaarora","count":2},{"name":"Kirtan Manoj Chandak","email":"92196705+kirtanchandak","login":"kirtanchandak","count":2},{"name":"Levent Günay","email":"leventgny@gmail.com","login":"leventgunay","count":2},{"name":"Marvin M","email":"39344769+M123-dev","login":"M123-dev","count":2},{"name":"Nicolas Métifiot","email":"nmetifiot","login":"nmetifiot","count":2},{"name":"BryanH01","email":"92093032+BryanH01","login":"BryanH01","count":2},{"name":"Emmanuel Seyman","email":"emmanuel+github@seyman.fr","login":"eseyman","count":2},{"name":"leonard","email":"leonard@lebasic.com","login":null,"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":"bertrand-amaraggi","email":"63349837+bertrand-amaraggi","login":"bertrand-amaraggi","count":2},{"name":"alexouille123","email":"67234740+alexouille123","login":"alexouille123","count":2},{"name":"alemit","email":"aleksandarmitrev@gmail.com","login":"alemit","count":2},{"name":"adam jones","email":"domdomegg+git@gmail.com","login":"domdomegg","count":2},{"name":"Viorel-Catalin Rapiteanu","email":"catalin.rapiteanu@intel.com","login":"crapitea","count":2},{"name":"Unpublished","email":"Unpublished","login":"Unpublished","count":2},{"name":"Trond Kjetil","email":"218276+tkbremnes","login":"tkbremnes","count":2},{"name":"Priyanka","email":"56197993+priyanka0906","login":"priyanka0906","count":2},{"name":"Pilou","email":"pierre-louis@libregerbil.fr","login":"pilou-","count":2},{"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":"Tushar","email":"ditsuke@protonmail.com","login":"ditsuke","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":"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":"Stéphane Parunakian","email":"sparunakian","login":"sparunakian","count":1},{"name":"Stefan Wobbe","email":"wobfan@pm.me","login":"wobfan","count":1},{"name":"Simon Jenkins","email":"38865319+simonj2","login":"simonj2","count":1},{"name":"Silvério Santos","email":"ssantos@web.de","login":"SantosSi","count":1},{"name":"Shivangi Chaurasia","email":"56307595+shivangi3001","login":"shivangi3001","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":"PENN JR™","email":"85356158+Payne680","login":"Payne680","count":1},{"name":"Paolo","email":"120209350+maxymus-1","login":"maxymus-1","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":"Pierce Andjelkovic","email":"pierceandjelkovic@gmail.com","login":"archanox","count":1},{"name":"tchen0125","email":"76577829+tchen0125","login":"tchen0125","count":1},{"name":"subi9","email":"63897356+subi9","login":"subi9","count":1},{"name":"samir","email":"azzouz.sam@gmail.com","login":"azzsamir","count":1},{"name":"paperplanes53","email":"paperplanes53","login":"paperplanes53","count":1},{"name":"oyenuga17","email":"64274826+oyenuga17","login":"oyenuga17","count":1},{"name":"omerfaruk-cakmak","email":"32402595+omerfaruk-cakmak","login":"omerfaruk-cakmak","count":1},{"name":"omahs","email":"73983677+omahs","login":"omahs","count":1},{"name":"odin-h","email":"150337574+odin-h","login":"odin-h","count":1},{"name":"noatime","email":"noatime","login":"noatime","count":1},{"name":"medape","email":"carlosferrimag@gmail.com","login":"medape","count":1},{"name":"leonid lednev","email":"46404279+leonidlednev","login":"leonidlednev","count":1},{"name":"laulowen","email":"2105057+laulowen","login":"laulowen","count":1},{"name":"k3lyan","email":"kelyan.morfouesse@gmail.com","login":"k3lyan","count":1},{"name":"jusfla","email":"133013209+jusfla","login":"jusfla","count":1},{"name":"jasmeet0817","email":"jasmeet0817@gmail.com","login":"jasmeet0817","count":1},{"name":"jalanyash","email":"57186641+jalanyash","login":"jalanyash","count":1},{"name":"helloworldtest123","email":"36381315+helloworldtest123","login":"helloworldtest123","count":1},{"name":"gospodin55","email":"63956324+gospodin55","login":"gospodin55","count":1},{"name":"emmapeel2","email":"emmapeel@aktivix.org","login":"emmapeel2","count":1},{"name":"danwyk","email":"danwyk.wang@gmail.com","login":"danwyk","count":1},{"name":"Adrien Chauve","email":"adrien.chauve@gmail.com","login":null,"count":1},{"name":"Filip Sauer","email":"st176721@stud.uni-stuttgart.de","login":null,"count":1},{"name":"Gilles","email":"ggozlan@teamreso.fr","login":null,"count":1},{"name":"Henrik Oelze","email":"hoelze@prosystem-nsf.com","login":null,"count":1},{"name":"Julien Kassar","email":"github@kassisol.com","login":null,"count":1},{"name":"Simon Gheeraert","email":"simon.gheeraert@illuin.tech","login":null,"count":1},{"name":"System Administrator","email":"root@slambook.local","login":null,"count":1},{"name":"gnaweric","email":"gnaw.eric@gmail.com","login":null,"count":1},{"name":"hannsen","email":"jan@hro-home.de","login":null,"count":1},{"name":"pijey","email":"pjvilloud-bitbucket@yahoo.fr","login":null,"count":1},{"name":"IWouldShiverTheWholeNightThrough","email":"95775047+IWouldShiverTheWholeNightThrough","login":"IWouldShiverTheWholeNightThrough","count":1},{"name":"HummingBrid","email":"hummingbrid@ymail.com","login":"HummingBrid","count":1},{"name":"Himaj333","email":"78681144+HimajPatil","login":"HimajPatil","count":1},{"name":"Helge Willum Thingvad","email":"1019305+tachylatus","login":"tachylatus","count":1},{"name":"Goverdhan Biradar","email":"66107302+goverdhan07","login":"goverdhan07","count":1},{"name":"Genadiy Ryabkin","email":"g.rjabkin@gmail.com","login":"GRyabkin","count":1},{"name":"GabrielBeFr","email":"112394931+GabrielBeFr","login":"GabrielBeFr","count":1},{"name":"GARVIT","email":"garvitbhattpc@gmail.com","login":"garvit-bhattt","count":1},{"name":"Filip Sauer","email":"sauer.filip@gmail.com","login":"srflp","count":1},{"name":"Fernando Jaramillo","email":"71108160+JoseJaramillo04","login":"JoseJaramillo04","count":1},{"name":"FemmeNoire","email":"github@femmenoire.de","login":"FemmeNoire","count":1},{"name":"Evgeniy Vasilev","email":"aquilax@gmail.com","login":"aquilax","count":1},{"name":"Emmanuel Ferdman","email":"emmanuelferdman@gmail.com","login":"emmanuel-ferdman","count":1},{"name":"Eliška","email":"with.the.lemons@gmail.com","login":"withthelemons","count":1},{"name":"Dhruv Awasthi","email":"dhruvawasthicc@gmail.com","login":"DhruvAwasthi","count":1},{"name":"Dev-Ashank","email":"78907802+Dev-Ashank","login":"Dev-Ashank","count":1},{"name":"Dennis Ahlqvist","email":"dennisahlqvist@hotmail.com","login":"dennisahlqvist","count":1},{"name":"Davide Crucitti","email":"davidoskky@yahoo.it","login":"davidoskky","count":1},{"name":"David","email":"david@macrofactorapp.com","login":"davidpryor","count":1},{"name":"Cutypareek","email":"75947841+Cutypareek","login":"Cutypareek","count":1},{"name":"Cody Njos","email":"69707332+CodyNjos","login":"CodyNjos","count":1},{"name":"Christian Schuhmann","email":"c-schuhmann@mailbox.org","login":"c-schuhmann","count":1},{"name":"Christian Quest","email":"cquest@openstreetmap.fr","login":"cquest","count":1},{"name":"Atos10","email":"100791038+Atos10","login":"Atos10","count":1},{"name":"Anca Luca","email":"lucaa@xwiki.com","login":"lucaa","count":1},{"name":"Alper Mulayim","email":"alper.mulayim48@gmail.com","login":"AlperMulayim","count":1},{"name":"Alexandre Fauquette","email":"45398769+alexfauquette","login":"alexfauquette","count":1},{"name":"Albert Sund Aillet","email":"73786209+albertaillet","login":"albertaillet","count":1},{"name":"Advait Athreya","email":"89476471+advaitathreya","login":"advaitathreya","count":1},{"name":"Abby Hart","email":"94138365+abbyrhart","login":"abbyrhart","count":1},{"name":"PrajwalM2212","email":"prajwalmmath@gmail.com","login":"PrajwalM2212","count":1},{"name":"Raphaël Odini","email":"raphodn","login":"raphodn","count":1},{"name":"Rory Powis","email":"rpowis","login":"rpowis","count":1},{"name":"SIDHANSU SINGH","email":"sidhanshusingh445@gmail.com","login":"sidhansu10","count":1},{"name":"Saksham Gupta","email":"84325475+Sakshamgupta90","login":"Sakshamgupta90","count":1},{"name":"Shamun Khatri","email":"shamunkhatri@gmail.com","login":"shamun-khatri","count":1},{"name":"Nur Aiman Fadel","email":"2870632+nuraiman","login":"nuraiman","count":1},{"name":"Nachiketa Pahari","email":"nachiketapahari00@gmail.com","login":"Pahari47","count":1},{"name":"Mohit Sharma","email":"msvbs98@gmail.com","login":"ms10398","count":1},{"name":"Mohan Kumar","email":"121867882+ItshMoh","login":"ItshMoh","count":1},{"name":"Mike","email":"162586393+mike-lu1","login":"mike-lu1","count":1},{"name":"Marco Rossini","email":"me@marcorossini.com","login":"bobcorn","count":1},{"name":"Mansi Sharma","email":"142149001+57200","login":"57200","count":1},{"name":"Majdi Saibi","email":"saibimajdi@outlook.com","login":"saibimajdi","count":1},{"name":"M Skanda Shyam Bhat","email":"4VP23CS044@vcetputtur.ac.in","login":"mskandashyambhat","count":1},{"name":"Lampone","email":"skechele@gmail.com","login":"Lampone","count":1},{"name":"L Bo","email":"elbeho","login":"elbeho","count":1},{"name":"Knut Ahlers","email":"knut@ahlers.me","login":"Luzifer","count":1},{"name":"Kezxo","email":"Kezxo","login":"Kezxo","count":1},{"name":"Kayla Edwards","email":"kaylae@andrew.cmu.edu","login":"kaylae605","count":1},{"name":"Karl Jones","email":"karljones@live.ie","login":"Karljoones","count":1},{"name":"Justin Hutchings","email":"jhutchings1","login":"jhutchings1","count":1},{"name":"Julien Palard","email":"julien@palard.fr","login":"JulienPalard","count":1},{"name":"JulieMaricicDetweiler","email":"80288445+JulieMaricicDetweiler","login":"JulieMaricicDetweiler","count":1},{"name":"John Nilsson","email":"john@milsson.nu","login":"JohnNilsson","count":1},{"name":"John Lianoglou","email":"prometheas","login":"prometheas","count":1},{"name":"JieDiscovery","email":"36447962+JieDiscovery","login":"JieDiscovery","count":1},{"name":"Jeremy Arancio","email":"97704986+jeremyarancio","login":"jeremyarancio","count":1},{"name":"Jaen Saul","email":"jaen@saul.ee","login":"jaens","count":1},{"name":"JBelcoco","email":"48061671+JBelcoco","login":"JBelcoco","count":1}],"past_year_committers":[{"name":"Freso","email":"freso.dk@gmail.com","login":"Freso","count":150},{"name":"Stéphane Gigandet","email":"stephane@openfoodfacts.org","login":"stephanegigandet","count":129},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":105},{"name":"moon-rabbitOFF","email":"34795011+moon-rabbitOFF","login":"moon-rabbitOFF","count":97},{"name":"Pierre Slamich","email":"pierre@openfoodfacts.org","login":"teolemon","count":87},{"name":"Alex Garel","email":"alex@openfoodfacts.org","login":"alexgarel","count":76},{"name":"Jagjeevan","email":"83103469+JagjeevanAK","login":"JagjeevanAK","count":55},{"name":"Open Food Facts Bot","email":"119524357+openfoodfacts-bot","login":"openfoodfacts-bot","count":54},{"name":"john-gom","email":"116556069+john-gom","login":"john-gom","count":39},{"name":"hangy","email":"hangy@hangy.de","login":"hangy","count":29},{"name":"James Addison","email":"55152140+jayaddison","login":"jayaddison","count":26},{"name":"benbenben2","email":"110821832+benbenben2","login":"benbenben2","count":24},{"name":"Kout95","email":"65901733+Kout95","login":"Kout95","count":16},{"name":"Arnaud Leene","email":"aleene@gmail.com","login":"aleene","count":15},{"name":"Charles Nepote","email":"charles@nepote.org","login":"CharlesNepote","count":12},{"name":"Dhiraj Rathod","email":"2102508740@svyasa-sas.edu.in","login":"dhiraj-143r","count":11},{"name":"Raphaël Bournhonesque","email":"raphael0202","login":"raphael0202","count":11},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":11},{"name":"Leonard","email":"leonard.michelet@gmail.com","login":"leonarf","count":10},{"name":"RayanGoubet","email":"156110537+RayanGoubet","login":"RayanGoubet","count":10},{"name":"VaiTon","email":"eyadlorenzo@gmail.com","login":"VaiTon","count":5},{"name":"Pau Amma","email":"pauamma@gundo.com","login":"pauamma","count":5},{"name":"Vic142","email":"144172903+Vic142","login":"Vic142","count":5},{"name":"Areeb Ahmed","email":"135235925+areebahmeddd","login":"areebahmeddd","count":5},{"name":"Kunal Gupta","email":"2007guptakunal@gmail.com","login":"Kunal241207","count":4},{"name":"Sam Tucker-Davis","email":"126325182+stuckvgn","login":"stuckvgn","count":3},{"name":"Pranjal J","email":"136667416+pranjal2004838","login":"pranjal2004838","count":3},{"name":"Teiron","email":"12804636+Teiron","login":"Teiron","count":3},{"name":"Tuukka Hastrup","email":"Tuukka.Hastrup@iki.fi","login":"tuukka","count":3},{"name":"OpenChris","email":"chris@hurbin.com","login":"OpenChris","count":3},{"name":"Nithya Vasireddi","email":"nithyavasireddi@gmail.com","login":"nithyaV-dev","count":3},{"name":"Manon Corneille","email":"104015489+manon-corneille","login":"manon-corneille","count":3},{"name":"leonard","email":"leonard@lebasic.com","login":null,"count":2},{"name":"Abderhman G. Zaki","email":"151753026+abderhman487","login":"abderhman487","count":2},{"name":"Abi","email":"llawlietbagsum@gmail.com","login":"LarytheLord","count":2},{"name":"Arybhatt","email":"bhattarya4533@gmail.com","login":"arybhatt4533","count":2},{"name":"Báthory Péter","email":"bathory86p@gmail.com","login":"BathoryPeter","count":2},{"name":"Jean Forget","email":"JFORGET@cpan.org","login":"jforget","count":2},{"name":"Kirtan Manoj Chandak","email":"92196705+kirtanchandak","login":"kirtanchandak","count":2},{"name":"Nothingspecial99","email":"122666701+Nothingspecial99","login":"Nothingspecial99","count":2},{"name":"Unpublished","email":"Unpublished","login":"Unpublished","count":2},{"name":"adam jones","email":"domdomegg+git@gmail.com","login":"domdomegg","count":2},{"name":"samir","email":"azzouz.sam@gmail.com","login":"azzsamir","count":1},{"name":"medape","email":"carlosferrimag@gmail.com","login":"medape","count":1},{"name":"beerhalt","email":"lbeerhal@andrew.cmu.edu","login":"beerhalt","count":1},{"name":"Vikas","email":"vs4445277@gmail.com","login":"Vikas4245","count":1},{"name":"Swastik Ranjan Panigrahi","email":"textswastik.alt@gmail.com","login":"swastikCommits","count":1},{"name":"Suvam Patra","email":"Patrasuvam15@gmail.com","login":"suvammpatra","count":1},{"name":"SIDHANSU SINGH","email":"sidhanshusingh445@gmail.com","login":"sidhansu10","count":1},{"name":"Raphaël Odini","email":"raphodn","login":"raphodn","count":1},{"name":"Pawan Patidar","email":"pawanpatidar8538@gmail.com","login":"Pawan8538","count":1},{"name":"Nur Aiman Fadel","email":"2870632+nuraiman","login":"nuraiman","count":1},{"name":"Nicolas Métifiot","email":"nmetifiot","login":"nmetifiot","count":1},{"name":"Nachiketa Pahari","email":"nachiketapahari00@gmail.com","login":"Pahari47","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":"Cody Njos","email":"69707332+CodyNjos","login":"CodyNjos","count":1},{"name":"Emmanuel Ferdman","email":"emmanuelferdman@gmail.com","login":"emmanuel-ferdman","count":1},{"name":"Emmanuel Seyman","email":"emmanuel+github@seyman.fr","login":"eseyman","count":1},{"name":"GARVIT","email":"garvitbhattpc@gmail.com","login":"garvit-bhattt","count":1},{"name":"IWouldShiverTheWholeNightThrough","email":"95775047+IWouldShiverTheWholeNightThrough","login":"IWouldShiverTheWholeNightThrough","count":1},{"name":"Kayla Edwards","email":"kaylae@andrew.cmu.edu","login":"kaylae605","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":"Marco Rossini","email":"me@marcorossini.com","login":"bobcorn","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-03-20T00:00:07.723Z","repositories_count":6202296,"commits_count":935819880,"contributors_count":36164054,"owners_count":1146584,"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-03-21T17:00:22.241Z","status":null,"issues_count":4019,"pull_requests_count":9842,"avg_time_to_close_issue":37781789.87806908,"avg_time_to_close_pull_request":1848011.9937362638,"issues_closed_count":2401,"pull_requests_closed_count":9100,"pull_request_authors_count":275,"issue_authors_count":253,"avg_comments_per_issue":2.1281413286887285,"avg_comments_per_pull_request":2.571123755334282,"merged_pull_requests_count":7765,"bot_issues_count":7,"bot_pull_requests_count":1576,"past_year_issues_count":184,"past_year_pull_requests_count":891,"past_year_avg_time_to_close_issue":1251881.0408163266,"past_year_avg_time_to_close_pull_request":497683.86890756304,"past_year_issues_closed_count":49,"past_year_pull_requests_closed_count":595,"past_year_pull_request_authors_count":57,"past_year_issue_authors_count":44,"past_year_avg_comments_per_issue":0.6032608695652174,"past_year_avg_comments_per_pull_request":4.008978675645342,"past_year_bot_issues_count":4,"past_year_bot_pull_requests_count":93,"past_year_merged_pull_requests_count":529,"created_at":"2023-05-09T10:34:51.045Z","updated_at":"2026-03-21T17:00:22.258Z","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":747,"⏰ Stale":557,"feature":416,"🐛 bug":328,"✨ Feature":244,"API":194,"Stale":181,"🎯 P1":147,"good first issue":139,"🧽 Data quality":137,"🏭 Producers Platform":125,"ingredients":113,"taxonomies":110,"data quality":108,"frontend":102,"i18n":93,"Fixed ?":89,"📖 Knowledge Panels":84,"ingredients analysis":82,"producers platform":78,"✔ task":74,"🧬 Taxonomies":73,"P3":72,"🥗🔍 Ingredients analysis":72,"P1":71,"Product Page":71,"P2":65,"✅ Task":65,"5 minute fix":63,"Template::Toolkit":60,"🧴 Open Beauty Facts":58,"labels":58,"ecoscore":58,"editing":56,"categories":54,"fixed?":52,"🥗  Ingredients":51,"search":49,"📚 Documentation":49,"📸 Open Products Facts":46,"🌐 i18n":44,"static content":44,"🚦 Nutri-Score":42,"🤳🥫 blocking mobile apps":41,":star: top issue":41,"✏️ Editing":41,"new design":40,"🔎  Search":40,"API READ":40,"facets":39,"Nutrients":39,"barcodes":37,"Nutrition facts":37,"nutrition facts":37,"additives":36,"📍🏭 Packager codes":35,"packaging":35,"help wanted":34,"⏲️ 5 minute fix":34,"nutrients":34,"images":33,"🚅 Performance":32,"product attributes":32,"🎨 Mockup available":32,"🎯 P0":31,"API Refactor":31,"knowledge-panels":30,"OCR":30,"🐾 Open Pet Food Facts":29,"📦 Packaging":29,"P1 candidate":29,"🎨 New design":28,"responsive ux":28,"non tech":28,"foundation":28,"API read":27,"multingual products":27,"👥 User management":27,"CSS":27,"performance":26,"css":26,"🧪 additives":25,"devops":25,"mongodb":25,"refactor":25,"P0":24,"javascript":24,"quality-facet":23,"🏷️ Folksonomy Project":23,"👩‍💻 DevOps":23,"Hacktoberfest":23,"Knowledge panels":23,"🖼️ Images":22,"needs deployment":22,"security":22,"blocking mobile apps":22,"JavaScript":22,"🎯 P1 candidate":21,"accessibility ♿":21,"👮 Moderation":21,"packager codes":21,"dev":21,"translations":21,"🤳🥫 mobile apps":21,"🎨 Design":20,"📍 Origins":20,"units":20,"docker":19,"Data export":19,"🖼️ Image upload":19,"documentation":19,"outreachy":19,"scan statistics":19,"design":19,"user-management":19,"ingredient-list-cutting":19,"API WRITE":19,"nova":19,"admin tools":18,"data import":18,"🤖 Robotoff":18,"P4":18,"🌍 Multilingual products":18,"brands":18,"brokenlinks":18,"personal search":18,":star: top bug":17,"infrastructure":17,"status system":17,":star: :bug: top bug":17,"✏️ Editing - Auto Suggest":17,"API write":17,"data export":17,"✏️ Editing - Nutrition":17,"image upload":16,"🧪 tests":16,"palm oil":16,"product history":16,"Nova - Ultra-processed foods":16,"ci":16,"open beauty facts":16,"SEO":16,"Perl":16,"🌱 Eco-Score":15,"task":15,"MongoDB":15,"export":15,"allergens":14,"location":14,"footer":14,"averages by categories":14,"data4good-environment":14,"📨 Emails":14,"GS1":14,"📝 story":13,"👍 Top 10 Issue!":13,"🔎 Advanced Search":13,"advanced search":13,"🎁 donations":13,"🛣️ Road to scores":13,"⚖️ Quantity":13,"🕷️ SEO":13,"🔐 API auth":13,"🥜 Allergens":13,"Attributes":13,"📊 Charts":13,"maintenance":13,"mockup-available":13,"gamification":13,"hunger games":13,"Signup Page":12,"📚 OpenAPI":12,"Translations":12,"product addition":12,"German":12,"📍 location":12,"organic products":12,"GitHub Actions":12,"homepage":12,"🇺🇸 United States":12,"Made Near Me":12,"no-issue-activity":12,"nutriscore":11,"onboarding":11,"wikidata":11,"tests":11,"🏭 Producers Platform - data imports":11,"robotoff":11,"API v3":11,"Admin tools":11,"question":11,"cropping":11,"CSV exports":11,"🕹️ Gamification":10,"CIQUAL":10,"Tags.pm":10,"graphs":10,"🏭 Producers Platform - onboarding":10,"List pages":10,"🌱 Green-Score":10,"Road to app":10,"🧽  Data quality - Nutrition":10,"multilingual products":10,"server":9,"vegan":9,"🧽 Data quality - Prevention":9,"special-diets":9,"Russian":9,"github_actions":9,"♞ Epic":9,"autosuggest":9,"microformats":9,"✂️ Editing - Images - Cropping":9,"Data import":9,"contribution journey":9,"🚦Nutri-Score":9,"Fixable via Userscript":9,"🏭 Producers Platform - Odoo":9,"WikiData":9,"environment":9,"linked data":9,"installation":9,"logos":9,"3rd party contributions":8,"📊 graphs":8,"carbon footprint":8,"CI":8,"needs investigation":8,"product lists":8,"🧽 Quality facet":8,"🍷 wine":8,"tag images":8,"moving-images":8,"fruits vegetables nuts estimate":8,"Ingredients knowledge panel":7,"♞ epic":7,"quantity":7,"🧬 Taxonomies - Translation":7,"automation":7,"traces":7,"🗄 Obsolete products":7,"Data destroying issue":7,"top navigation":7,"blocking-smoothie":7,"wiki":7,"📖 Knowledge Panels - For facets":7,"Sprint":7,"HTML":7,"fixable-via-userscript":7,"🧽 Data quality - Measure - Quality facets":7,"🗺️ Maps":7,"👥 Users":7,"portions":7,"Emails":7,"caching":7,"Outreachy":7,"donations":6,"new fields":6,"📖 Knowledge panels - Actions":6,"osd'22":6,"🇨🇭 Switzerland":6,"category-specific support":6,"Recent changes":6,"dependencies":6,"nutrition editing":6,"inline edit":6,"nginx":6,"Spanish":6,"404":6,"pathway-to-contribution":6,"🐋 Docker":6,"origins":6,"Big Bang for Your Time":6,"dev journeys documentation":6,"automatic-data-augmentation":6,"data-freshness":6,"Epic":6,"vitamins":5,"nutrient-levels":5,"🐠 Fishing":5,"product-specific issue":5,"CORS":5,"✏️ Editing - Ingredients":5,"road-to-scores":5,"🔎 Search":5,"score explainability":5,"timeouts":5,"🔔 Notifications":5,"login":5,"Can be done by Robotoff":5,"variable-barcodes":5,"html":5,"Users":5,"Products Recalls":5,"🏭 Producers Platform - admin tools":5,"🏭 Producers Platform - acquisition":5,"🎯 Big Bang for Your Time":5,"REDIS":5,"Cocoa":5,"untranslatable strings":5,"account deletion":5,"🇫🇷 France":5,"serving size":5,"spanish":5,"gluten":5,"offline mode":5,"🌐 Translations":5,"China":5,"Lists of products":5,"edit rules":5,"NGINX":5,"Power User Script":5,"products without barcodes":5,"salt":4,"Spellcheck":4,"power tools for contributors":4,"Traces":4,"💸  Prices":4,"OpenAPI":4,"typing":4,"drip editing":4,"🇬🇧 United Kingdom":4,"Road to Doc":4,"processing":4,"matomo":4,"needs reprocessing":4,"openfoodfacts-events":4,"🧽 API - Quality":4,"HTTPS":4,"🌳 Forest Footprint":4,"can-be-done-by-robotoff":4,"needs more info":4,"protected data":4,"india":4,"🧽 Data quality - Prevention - Edit rules":4,"impact":4,"🗺️ Made Near Me":4,"🌾 gluten":4,"russian":4,"ciqual":4,"scores":4,"seasonality support":4,"🥗 Ingredients":4,"🇩🇪 Germany":4,"Belgium":4,"Alcohol":4,"pagination":4,"delta exports":4,"👥 User support":4,"newsletter":4,"maps":4,"diluted products":4,"old-products":4,"🧂 Salt":4,"monitoring":4,"taxonomy translation":4,"producers platform - acquisition":4,"🎨 Mockup required":4,"data-quality-nutrition":4,".well-known":4,"api auth":4,"image recognition":4,"🧬 External taxonomies":4,"🧽 Data quality - edit rules":3,"Server-driven editing":3,"OxF":3,"Greek":3,"Scanbot":3,"🧬 Taxonomies - Rebuild":3,"🪶 Apache":3,"openfoodfacts-query":3,"📍 geolite":3,"🌱 Vegan":3,"logs":3,"Tests - ToDo":3,"Ambiguous barcodes":3,"user feedback":3,"🇵🇱 Polish":3,"Fixed by Keycloak":3,"qrcode":3,"🤰 pregnancy \u0026 babies":3,"🍬 Sugar":3,"🧪 integration tests":3,"Checked products":3,"glycemic index":3,"✏️ Editing - drip editing":3,"🔐 Password reset":3,"product-count page":3,"🧽 Data quality - Remediation":3,"image deletion":3,"Display":3,"🏄‍♂️ good first issue":3,"packaging_shapes":3,"marketing":3,"mockup-required":3,"data destroying issue":3,"comments":3,"Open Products Facts":3,"road to app":3,"pregnancy \u0026 babies":3,"user-support":3,"Requires HTTPS":3,"obsolete products":3,"Tags":3,"tagline":3,"producers platform - reengagement":3,"duplicate":3,"manifest":3,"US project":3,"Road to community":3,"us project":3,"best-before-dates":3,"startup":3,"pull-request-available":3,"Dutch":3,"open pet food facts":3,"not planned":3,"Blocking Hunger Games":3,"folksonomy project":3,"📦 Packaging shapes":3,"disk space":3,"code pointer available":3,"agribalyse":3,"not done":3,"icons":3,"editing-images":3,"odoo":2,"🚰 diluted products":2,"knowledge panels for facets":2,"open food hunt":2,"fixed-via-userscript":2,"product deletion":2,"🇪🇺 Europe":2,"Account deletion":2,"polish":2,"Portuguese":2,"EAN-8":2,"config":2,"science":2,"P5":2,"deploy-dev":2,"wontfix":2,"Error pages":2,"🇨🇱 Chile":2,"data donations":2,"wine":2,"regression":2,"🥚 eggs":2,"Austria":2,"equivalents":2,"Nutri-Score v2":2,"Road to OxF":2,"fishing":2,"Call for Proposals":2,"script-writing":2,"🔐 external auth service":2,"🔒 Requires HTTPS":2,"✏️ Editing - Images":2,"Progressive Web App":2,"🇮🇳 India":2,"Agribalyse":2,"🥗 Ingredients - processing":2,"🔐 Auth":2,"🍬 How much sugar":2,"anonymous-edits":2,"🚦nutriscore":2,"producer platform - spam":2,"recipes":2,"slack-notifications":2,"crossplatform integration":2,"search ranking":2,"release-blocking-issue":2,"Fruits \u0026 Vegetables":2,"🏭 Producers Platform - reengagement":2,"Vegetarian":2,"💥 Merge Conflicts":2,"eggs":2,"changelog":2,"product reformulation":2,"ingredients editing":2,"lazy-loading":2,"🔀 Product alternatives":2,"Products":2,"Minion":2,"📨 Emails - Brevo":2,"postgresql":2,"spellcheck":2,"product page navigation":2,"halal":2,"Product name":2,"🔖 🖼️ tag images":2,"invalid":2,"knowledge panel actions":2,"📢 Marketing":2,"🇮🇪 Ireland":2,"API auth":2,"Uncommitted assets":2,"Web components":2,"Social media links":2,"🖼️ Image refresh":2,"japan":2,"checkbot":2,"can't reproduce":2,"FoodRepo":2,"🇭🇷 Croatia":2,"RTL":2,"encoding":2,"Photo rotation":2,"indexing":2,"solution available":2,"storage-instructions":2,"routing":2,"✏️ Editing - image edition":2,"preprod":2,"🥤 Gulp":2,"✅ task":2,"Fields":1,"🧽  on-the-fly quality checks":1,"⚙️ food preferences":1,"🍺 beers":1,"CSRF":1,"needs a decision":1,"rate-limit":1,":star: top issues dashboard":1,"📖 Knowledge Panels -":1,"lactose":1,"animal welfare":1,"signup date":1,"🧽 Data quality - False positives":1,"📖 Knowledge Panels - OBF":1,"📖 Knowledge panels - Health":1,"Knowledge panels - infoboxes":1,"🤳🥫 tagline":1,"Partial barcode API":1,"npm":1,"lithuanian":1,"🐍 Python":1,"🧪 needs tests":1,"🇯🇵 Japan":1,"RSS":1,"Request for Comments":1,"🇦🇺 Australia":1,"🇺🇾 Uruguay":1,"🙅‍♀️ wontfix":1,"Data extraction":1,"documentation-update-required":1,"documented":1,"🧬 Taxonomy editor":1,"GS1 GPC":1,"teams":1,"Food supplements":1,"API Read - Product":1,"🧪 unit tests":1,"🇨🇦 Canada":1,"non-food products":1,"debug":1,"🇳🇴 Norway":1,"Analytics":1,"✏️ Editing - Basic details":1,"🇮🇹 Italy":1,"🔒 HTTPS":1,"Ecobalyse":1,"🤳🥫Scan Party":1,"User engagement":1,"Non-ASCII":1,"geolite":1,"Producer platform - improvement opportunities":1,"🕰️ CRON":1,"htaccess":1,"todo tests":1,"Url":1,"humor":1,"user groups":1,"Q1-2019":1,"compare":1,"External taxonomies":1,"power-user-script":1,"Mail":1,"ingredients processing":1,"argentina":1,"infoboxes":1,"vegetarian":1,"degrated situations":1,"password reset":1,"regular expressions":1,"foreign-products-stored-in-french":1,"Eco-Score":1,"P30":1,"Nutri-Score":1,"apache":1,"segfault":1,"need design":1,"producers platform - onboarding":1,"Croatia":1,"autorelease: pending":1,"openapi":1,"colors":1,"on-the-fly quality checks":1,"charts":1,"uservoice":1,"stores":1,"🇱🇹 Lithuania":1,"CRON":1,"Taxonomies":1,"Taxonomies - Rebuild":1,"france":1,"fixable-in-crowdin":1,"Fixed via Userscript":1,"keyboard shortcuts":1,"meta":1,"csv exports":1,"beers":1,"dataset creation":1,"Knowledge panels - Health":1,"dependancies":1,"sentry":1,"XML":1,"needs tests":1,"🔎 Search - Ranking":1,"🌐 Timezones":1,"needs data analysis":1,"📖 Knowledge panels - Data Quality":1,"special-character-languages":1,"health card":1,"🇸🇮 Slovenia":1,"taxonomy editor":1,"Road to editing":1,"alternatives":1,"opposites - logic bombs":1,"🇱🇺 Luxembourg":1,"prepared nutrition":1,"🇧🇬 Bulgaria":1,"modals":1,"Dark mode":1,"Ukrainian":1,"language switcher":1,"alcohol":1,"Contribalim":1,"fructose":1,"Scan Party":1,"education":1,"legacy":1,"Buggy products":1,"🧹 Linting":1,"SFTP":1,"api quality":1,"favicons":1,"🔐 Password":1,"ImageMagick":1,"✏️ Editing - anonymous edits":1,"🏪 Stores":1,"deployed-on-dev-server":1,"food archeology":1,"forest footprint":1,"🇸🇪 Sweden":1,"🛒 DriveOFF":1,"shortcuts":1,"update all products":1,"Legal":1,"rtl":1,"producer onboarding":1,"👥 User groups":1,"observability":1},"pull_request_labels_count":{"dependencies":1456,"🧬 Taxonomies":1182,"taxonomies":778,"🧪 tests":753,"categories":751,"Template::Toolkit":522,"📚 Documentation":435,"JavaScript":426,"javascript":425,"Display":363,"github_actions":361,"ingredients":359,"translations":338,"GitHub Actions":333,"🥗 Ingredients":296,"💥 Merge Conflicts":274,"🥗🔍 Ingredients analysis":273,"tests":265,"🌐 Translations":261,"labels":210,"🧴 Open Beauty Facts":199,"🏭 Producers Platform":189,"API":185,"Tags":174,"🧪 additives":166,"📸 Open Products Facts":156,"producers platform":156,"i18n":153,"🧽 Data quality":148,"📖 Knowledge Panels":143,"Products":139,"config":136,"Ingredients processing":131,"ingredients analysis":130,"🐾 Open Pet Food Facts":129,"🚦 Nutri-Score":125,"Food.pm":125,"multilingual products":123,"documentation":120,"additives":119,"packaging":118,"📦 Packaging":116,"ecoscore":116,"dependancies":108,"docker":102,"merge-conflicts":101,"🧪 unit tests":96,"🥜 Allergens":93,"🖼️ Images":90,"knowledge-panels":90,"autorelease: tagged":87,"CSS":85,"🐋 Docker":84,"🧪 integration tests":81,"API v3":78,"👥 Users":78,"Product Page":78,"Data import":75,"🎁 donations":73,"frontend":71,"Attributes":70,"Site layout":69,"open beauty facts":69,"📍 Origins":68,"autorelease: pending":64,"NGINX":62,"GS1":61,"German":61,":star: top pull request":61,"📍🏭 Packager codes":59,"🥗  Ingredients":58,"export":57,"Stale":55,"open pet food facts":55,"📚 OpenAPI":55,"product history":53,"update all products":52,"👮 Moderation":52,"API WRITE":52,"Open Products Facts":49,"data quality":47,"devops":46,"allergens":46,"🌱 Eco-Score":45,"static content":45,"taxonomy translation":44,"2024 Paris Perl Hackathon":42,"data import":41,"exports":41,"css":40,"ciqual":40,"✏️ Editing":38,"🏭 Orgs":37,"images":36,"Users":36,"🇵🇱 Polish":35,"MongoDB":35,"API READ":34,"icons":33,"Food groups":33,"🥤 Gulp":31,"taxonomies rebuild":31,"🇸🇪 Sweden":30,"mongodb":30,"📦 Packaging shapes":30,"bug":29,"🇭🇷 Croatia":29,"Croatia":29,"Web":28,"⏰ Stale":28,"🏭 Producers Platform - Odoo":28,"editing":27,"🎯 P0":27,"OCR":27,"packager codes":27,"nova":26,"✏️ Editing - Auto Suggest":26,"store":26,"REDIS":26,"refactor":26,"file import":26,"lang":26,"brands":25,"performance":25,"product attributes":25,"Paris Perl Hackathon":24,"👩‍💻 DevOps":24,"Perl":23,"Scanbot":23,"Poland":23,"Minion":23,"Taxonomies":23,"catalan":22,"dev":22,"unit tests":22,"Nova - Ultra-processed foods":22,"🤳🥫 tagline":22,"recipes":21,"🏷️ Folksonomy Project":21,"ci":21,"📨 Mail":20,"🔐 Password":20,"Translations":20,"status system":20,"integration tests":20,"personal search":20,"🔐 Auth":19,"API write":19,"🤖 Robotoff":19,"🇩🇰 Denmark":19,"🔎 Search":19,"🪶 Apache":18,"nutrients":18,"🐛 bug":18,"bulgaria":17,"design":17,"nginx":17,"tagline":17,"🌳 Forest Footprint":17,"origins":17,"🇯🇵 Japan":17,"🌱 Vegan":17,"🚅 Performance":16,"🍬 How much sugar":16,"🕹️ Gamification":16,"facets":16,"API read":16,"openfoodfacts-query":15,"Recent changes":15,"vitamins":15,"🎯 P1":15,"data4good-environment":14,"🗺️ Made Near Me":14,"Account deletion":14,"Czech":13,"donations":13,"nutrition facts":13,"Lists of products":13,"✨ Feature":13,"Text":13,"Agribalyse":12,"dev journeys documentation":12,"wikidata":12,"security":12,"search":12,"forest footprint":12,"📨 Emails - Brevo":12,"🤳🥫 blocking mobile apps":11,"agribalyse":11,"palm oil":11,"Nutri-Score v2":11,"URL":11,"Ecobalyse":11,"WikiData":10,"folksonomy project":10,"🇱🇹 Lithuania":10,"ingredients processing":10,"Stores":10,"systemd":10,"Web components":10,"checkbot":10,"🧽  Data quality - Nutrition":10,"carbon footprint":9,"Nutrients":9,"🏭 EQUADIS":9,"Numbers":9,"Countries":9,":boom: Merge Conflicts":9,"partners page":9,"logos":9,"Orgs":9,"Nutrition facts":9,"accessibility ♿":9,"python":8,"data export":8,"China":8,"Knowledge panels":8,"no-pr-activity":8,"packaging_shapes":8,"5 minute fix":8,"barcodes":8,"scan statistics":8,"quality-facet":8,"MainCountries":8,"Uncommitted assets":7,"🇳🇴 Norway":7,"✔︎ Spellcheck":7,"darkmode":7,"apache":7,"🌱 Green-Score":7,"matomo":7,"autosuggest":7,"Data export":7,"image upload":7,"feature":7,"Vegetarian":7,"HTTPS":7,"logs":7,"🧽 Data quality - edit rules":7,"Denmark":6,"footer":6,"🏭 Producers Platform - data imports":6,"responsive ux":6,"linked data":6,"🤳🥫 mobile apps":6,"P1":6,"Spanish":6,"👥 User management":6,"🇫🇷 France":6,"product addition":6,"🥗 Ingredients - processing":6,"maintenance":6,"🎯 P1 candidate":5,"robotoff":5,"nutriscore":5,"Data exports":5,"🇫🇮 Finland":5,"⚖️ Quantity":5,"📍 geolite":5,"foundation":5,"admin tools":5,"gamification":5,"Mail":5,"Austria":5,"hunger games":5,"moderation":5,"Made Near Me":5,"Allergens":5,"🏭 Producer platform - improvement opportunities":5,"advanced search":5,"🧽 Data quality - Measure - Quality facets":5,"new design":5,"russian":5,"🧽 Data quality - Remediation":5,"🍊 Open Food Facts":5,"Cocoa":4,"SCSS":4,"🔐 external auth service":4,"CIQUAL":4,"Czech republic":4,"CI":4,"rate limiter":4,"server":4,"Dutch":4,"npm":4,"🧬 Taxonomies - Translation":4,"🔖 🖼️ tag images":4,"caching":4,"processing":4,"script-writing":4,"ingredient-list-cutting":4,"multingual products":4,"obsolete products":4,"serving size":4,"SEO":4,"location":4,"special-diets":4,"🗺️ Maps":4,"🌐 i18n":4,"🌾 gluten":4,"Nutri-Score":4,"🇧🇬 Bulgaria":4,"📊 graphs":4,"🇷🇴 Romania":4,"documentation-update-required":3,"spanish":3,"🇮🇱 Israel":3,"fixed?":3,"🚦Nutri-Score":3,"US project":3,"offline mode":3,"FODMAP":3,"svg":3,"🇮🇹 Italy":3,"🕰️ CRON":3,"infoboxes":3,"Signup Page":3,"Makefile":3,"ready to merge":3,"🇺🇸 United States":3,"blocking mobile apps":3,"Tags.pm":3,"graphs":3,"needs deployment":3,"teams":3,"units":3,"🇨🇦 Canada":3,"routing":3,"pagination":3,"geolite":3,"Portugal":3,"Cyprus":3,"Ingredients knowledge panel":3,"🍬 Sugar":3,"Contribalim":3,"🇮🇪 Ireland":3,"OpenAPI":3,"3rd party contributions":3,"Fruits \u0026 Vegetables":3,"🕷️ SEO":3,"task":3,"📍 location":3,"🇮🇳 India":3,"nodejs":3,"Power User Script":3,"Nutrient levels":2,"🔎  Search":2,"account deletion":2,"🧽  on-the-fly quality checks":2,"🧽 Data quality - Prevention":2,"🇱🇺 Luxembourg":2,"OxF":2,"lactose":2,"API Refactor":2,"🏭 Producers Platform - acquisition":2,"language switcher":2,"product examples":2,"elastic":2,"elk":2,"🇬🇧 United Kingdom":2,"🧬 Taxonomy editor":2,"divinfood":2,"✏️ Editing - Images":2,"CORS":2,"STO":2,"postgresql":2,"needs help":2,"✏️ Editing - Nutrition":2,"Belgium":2,"averages by categories":2,"subdomains":2,"Nutrition estimation":2,"Privacy":2,"🔐 API auth":2,"🇸🇮 Slovenia":2,"Road to Doc":2,"deployed-on-dev-server":2,"📖 Knowledge Panels - For facets":2,"🎨 Design":2,"💸 Prices":2,"Shared services":2,"🏭 AGENA3000":2,"prometheus":2,"opposites - logic bombs":2,"Luxembourg":2,"Ireland":2,"Hungary":2,"Italy":2,"Greek":2,"stores":2,"maps":2,"installation":2,"newsletter":2,"monitoring":2,"Australia":2,"pregnancy \u0026 babies":2,"disk space":2,"recommendations":2,"html":2,"quantity":2,"environment":2,"csv exports":2,"Blocks":2,"rtl":2,"openapi":2,"fishing":2,"microformats":2,"manifest":2,"spellcheck":2,"Legal":2,"🥚 eggs":2,"🧽 Quality facet":2,"scores":2,"user-management":2,".well-known":2,"editing-images":2,"edit rules":2,"external taxonomies":2,"data-quality-nutrition":2,"gluten":2,"polish":2,"knowledge panel actions":2,"vegan":1,"🌽 Corn":1,"🐍 Python":1,"🤳🥫 requires mobile changes":1,"Fields":1,"GenAI":1,"deploy-dev":1,"debug":1,"🇩🇪 Germany":1,"Top translators":1,"glycemic index":1,"Road to app":1,"seasonality support":1,"🇹🇭 Thailand":1,"Keyhole":1,"🇨🇭 Switzerland":1,"update-all-products":1,"enhancement":1,"P3":1,"todo tests":1,"diluted products":1,"3rd party Knowledge Panels":1,"product rules":1,"Road to editing":1,"Social media links":1,"markdown":1,"verified to work in production":1,"deployed in production":1,"Progressive Web App":1,"power tools for contributors":1,"ketogenic diet":1,"api auth":1,"wiki":1,"external auth service":1,"Animal welfare":1,"Food supplements":1,"nutrient-levels":1,"india":1,"⚙️ food preferences":1,"⏲️ 5 minute fix":1,"🗄 Obsolete products":1,"Spain":1,"🧽 Data Quality - Products stored in French":1,"🇺🇸 USDA import":1,"producer onboarding":1,"observability":1,"SFTP":1,"japan":1,"animal welfare":1,"needs work":1,"preprod":1,"infrastructure":1,"on-the-fly quality checks":1,"open products facts":1,"Portuguese":1,"traces":1,"CSV exports":1,"sto":1,"Requires HTTPS":1,"homepage":1,"startup":1,"brokenlinks":1,"JSONL":1,"🌍 Multilingual products":1,"Intake24":1,"Producers - Product Enhancement Suggestions":1,"GS1 GPC":1,"Dark mode":1,"Eco-Score":1,"🧹 Linting":1,"Alcohol":1,"🔐 Password reset":1,"🍺 beers":1,"🐠 Fishing":1,"🖼️ Image upload":1,"indexing":1,"product reformulation":1,"🏭 Producers Platform - onboarding":1,"agena3000":1,"lazy-loading":1,"product lists":1,"Analytics":1,"Knowledge panels - Health":1,"Bug in Pre-Production":1,"automated pr":1,"🧪 ✅ Tested":1,"documented":1,"us project":1,"non tech":1,"user groups":1,"EAN-8":1,"comments":1,"organic products":1,"Q\u0026A":1,"variable-barcodes":1,"Ukrainian":1,"🎨 New design":1,"cropping":1,"profiles":1,"favicons":1,"moving-images":1,"outreachy":1,"user-support":1,"blocking-smoothie":1,"release-blocking-issue":1,"Producer platform - improvement opportunities":1,"P0":1,"Url":1,"auth":1,"Polish":1,"needs tests":1},"issue_author_associations_count":{"MEMBER":2077,"CONTRIBUTOR":1539,"NONE":327,"COLLABORATOR":76},"pull_request_author_associations_count":{"CONTRIBUTOR":6315,"MEMBER":2730,"COLLABORATOR":641,"NONE":156},"issue_authors":{"teolemon":1591,"stephanegigandet":758,"aleene":197,"CharlesNepote":180,"alexgarel":157,"aleksejrs":99,"manon-corneille":97,"hangy":84,"TaciteOFF":67,"kyzh":40,"raphael0202":35,"g123k":30,"AcuarioCat":25,"VaiTon":24,"john-gom":22,"monsieurtanuki":20,"nicolasleger":18,"jayaddison":17,"svensven":16,"October-Food-Facts":15,"yuktea":14,"Freso":13,"bredowmax":12,"Ban3":12,"roshnaeem":11,"Slawek234":10,"SantosSi":10,"ocervell":10,"M123-dev":10,"gcalsmith":9,"benbenben2":9,"CloCkWeRX":8,"github-throwaway":7,"zigouras":6,"galnaf":6,"rbigueras":6,"Jen-Lopez":6,"alexfauquette":6,"laulowen":6,"sentry-io[bot]":5,"LandonPattison":5,"DanieliusAsm":5,"HummingBrid":5,"jasmeet0817":5,"ashed":5,"Anubhav-Bhargava":5,"4nt0ineB":5,"astrubel-zz":5,"N3jm4n":4,"NerOcrO":4,"dipietroR":4,"PommeOrange147":4,"fabricetheytaz":4,"TheSussex":4,"sashabrava":4,"alemit":4,"Kezxo":4,"bigon":4,"pradumna-gautam":3,"moon-rabbitOFF":3,"jb1415":3,"fuddl":3,"Sarazine131":3,"syl10100":3,"rampmaster":3,"oliwuaa":3,"openfoodfacts-bot":3,"otatadeabigail":3,"trendspotter":3,"szmi":3,"mvark":3,"Naruyoko":3,"chk1":3,"Valimp":3,"rndblnch":3,"fabi003":3,"ghost":3,"ferb7o2":2,"theedov":2,"philipbrembeck":2,"john-hu":2,"blazern":2,"Nymerea":2,"yarons":2,"Sulstice":2,"norganna":2,"ms10398":2,"jusdekiwi":2,"sgtSeme4ki":2,"aquilax":2,"fgouget":2,"squeak9":2,"jforget":2,"andrewhuanggg":2,"nazimboudeffa":2,"pamputt":2,"MaximeLaurenty":2,"bcatelin":2,"asmoth360":2,"archanox":2,"BenibenOFF":2,"herau":2,"KommX":2,"oricdev":2,"areebahmeddd":2,"mrmd8":2,"lucaa":2,"javichuOFF":2,"teleboas":2,"Cypresslin":2,"alexouille123":2,"rugk":2,"Phyks":2,"TechShooter":2,"Gongjuhyeon":2,"alexk1923":1,"Areontar":1,"chris-hatton":1,"MonalikaPatnaik":1,"milahu":1,"Abbas-Askari":1,"void0x23":1,"IsaiahLevy":1,"cutterkom":1,"AaronAsAChimp":1,"Mehak-Parveen":1,"verdie-g":1,"mikejsdev":1,"cvettelina":1,"domigmr":1,"UlricusR":1,"FRAdrien":1,"leonarf":1,"Faltenreich":1,"FoodCoach-App":1,"seniorm0ment":1,"alifafaruk":1,"ovz93br43v7":1,"cbachhuber":1,"jolesh":1,"Gallantmayor":1,"Nothingspecial99":1,"kmlhsn":1,"himanshisrestha":1,"2jaeyeol":1,"kulizhsy":1,"hunsly":1,"dependabot[bot]":1,"mahlzahn":1,"Pereradilon9":1,"sebeeek":1,"JieDiscovery":1,"saihtaM":1,"onemetafox":1,"JVillafruela":1,"Ov-ille":1,"prashantpatel0":1,"Chocobozzz":1,"forenta":1,"RotBolt":1,"RiyanshiTomar":1,"AnthonySchneider2000":1,"Pawan8538":1,"moreymat":1,"Ahson-Shaikh":1,"SebSwiss":1,"danielcavanagh":1,"RayanGoubet":1,"Sebleouf":1,"cannoyroy":1,"vanshikaarora":1,"zanovis":1,"Yoanndp":1,"adeyanjufawaz":1,"woshilapin":1,"Telperion87":1,"aqkd1":1,"NamesNetworkNic":1,"A1CY0N":1,"manoncorneille":1,"nothowstorygoes":1,"laralem":1,"EmilJunker":1,"diesieben07":1,"ygaspoz":1,"shahaman351":1,"albatrousse":1,"hydrargyrum":1,"elbeho":1,"vertigo220":1,"lukemorgan8064":1,"Searchingdays":1,"Diegovsky":1,"DamienMAYAUX":1,"dlatchx":1,"prateekshac1":1,"pepperino217":1,"ArchiMageAlex":1,"matotim":1,"duhow":1,"Manu1400":1,"IceIsFrozen":1,"natrius":1,"JamesMahy":1,"OpenChris":1,"Bartozzz":1,"3ph":1,"PhoenixOFF":1,"josve05a":1,"zond":1,"JoseMoFi":1,"guillaumegarcia13":1,"k127":1,"denis-migdal":1,"kylesorkness":1,"MarByteBeep":1,"olboaz":1,"alfinal":1,"azzsamir":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,"tradmangh":1,"jchristin":1,"victorosorioparis":1,"yangar":1,"leohumnew":1,"astagi":1,"MichaelBarnett1111":1,"FredJul":1,"Hugo-De":1,"jnsereko":1,"Chri92000":1,"tovkal":1,"raphodn":1,"22404sonalmishra":1,"TamannaVerma99":1,"Fienne":1,"Roxie-32":1,"github-actions[bot]":1,"rursache":1,"deniger":1,"jodm":1,"JagjeevanAK":1},"pull_request_authors":{"stephanegigandet":1959,"teolemon":1638,"dependabot[bot]":1245,"moon-rabbitOFF":499,"alexgarel":496,"aleene":388,"hangy":368,"benbenben2":298,"openfoodfacts-bot":213,"github-actions[bot]":198,"Freso":164,"dipietroR":135,"dependabot-preview[bot]":133,"raphael0202":106,"CharlesNepote":86,"svensven":85,"4nt0ineB":84,"john-gom":70,"Roto15":69,"VaiTon":68,"JagjeevanAK":57,"roshnaeem":56,"Ban3":44,"OpenChris":43,"pauamma":42,"ocervell":42,"yuktea":39,"TheSussex":38,"Teiron":35,"jayaddison":33,"MonalikaPatnaik":32,"areeshatariq":29,"AcuarioCat":24,"duhow":23,"github-throwaway":23,"areebahmeddd":23,"shinjigi":23,"deveshidwivedi":22,"laralem":20,"RayanGoubet":19,"mrmd8":19,"Roxie-32":19,"Kout95":19,"Naruyoko":18,"Copilot":18,"McCio":18,"blazern":18,"ArturLange":18,"very-smartin":18,"jolesh":17,"himanshisrestha":17,"DanieliusAsm":15,"Pawan8538":14,"manon-corneille":13,"bernardlemoullec":13,"albatrousse":13,"leonarf":13,"g123k":12,"Nothingspecial99":12,"Valimp":12,"kant":12,"pradumna-gautam":12,"Vic142":11,"NerOcrO":10,"jnsereko":9,"aadak99":8,"jforget":8,"BathoryPeter":8,"CloCkWeRX":8,"eric-nguyen-cs":7,"LandonPattison":7,"zigouras":7,"anaritadauane":7,"syl10100":6,"pratyaksh1610":6,"foodietim":6,"yarons":6,"Sneha6003":6,"Steinhagen":6,"muskangarg21":6,"TaciteOFF":6,"krishita30j":6,"mahlzahn":6,"abderhman487":6,"Annieieieie":6,"RonanMorgan":5,"borrokk":5,"damil":5,"TCatinaud":5,"tuukka":5,"IsaiahLevy":4,"sandy9999":4,"lan33":4,"KommX":4,"oricdev":4,"himanshi-154":4,"sultanowski":4,"mike-lu1":4,"vansasuu":4,"medape":4,"Strubbl":4,"alexfauquette":4,"eseyman":4,"that1":4,"MaximeLaurenty":4,"nmetifiot":4,"franiis":4,"lilymedway":4,"himanshipikachu":4,"teleboas":4,"tchen0125":4,"tkbremnes":4,"alexouille123":3,"oyenuga17":3,"mariali1":3,"astagi":3,"Josckar":3,"Lunique":3,"diivi":3,"ferb7o2":3,"zond":3,"bazylevnik0":3,"ghost":3,"nicolasleger":3,"kirtanchandak":3,"FemmeNoire":3,"Jen-Lopez":3,"GendelfLugansk":3,"M123-dev":3,"smonff":3,"Payne680":3,"sumit-158":3,"K13b3r":2,"Cutypareek":2,"alex-marty":2,"pilou-":2,"withthelemons":2,"jeremyarancio":2,"Shrutakeerti":2,"alemit":2,"rohan-mate-28":2,"DhruvAwasthi":2,"Sakshamgupta90":2,"rajanarahul93":2,"subi9":2,"andylin2004":2,"srflp":2,"Aman-Jamshed":2,"Vicam":2,"sgtSeme4ki":2,"abbyrhart":2,"andrewhuanggg":2,"elbeho":2,"davisjrule":2,"owusunp":2,"nuraiman":2,"k2s":2,"Makitsu":2,"Dev-Ashank":2,"rpowis":2,"dolmen":2,"aadarsh-ram":2,"priyanka0906":2,"k127":2,"aleksejrs":2,"snyk-bot":2,"dereineLauch":2,"vanshikaarora":2,"Vikas4245":2,"Etatdesprit":2,"challengee":2,"TechShooter":2,"wobfan":2,"garvit-bhattt":2,"saibimajdi":2,"rkiddy":2,"NooaLumi":2,"albertaillet":2,"sparunakian":2,"chinon123":2,"alifafaruk":2,"davidpryor":2,"BryanH01":2,"tur-ium":2,"1DhruvPatel":2,"fuddl":2,"JieDiscovery":2,"achauve":1,"57200":1,"jalanyash":1,"helloworldtest123":1,"maxymus-1":1,"JohnNilsson":1,"Victor-Hermes":1,"JulienPalard":1,"simonj2":1,"gospodin55":1,"star-warrior":1,"GabrielBeFr":1,"ItshMoh":1,"Kezxo":1,"tapaswenipathak":1,"dhruv1345":1,"AlperMulayim":1,"TonyTroeff":1,"aakankshabhende":1,"iotaaxel":1,"JulieMaricicDetweiler":1,"leventgunay":1,"sebeeek":1,"tachylatus":1,"michael-golden":1,"anthonyryan1":1,"cquest":1,"hannsen":1,"jusfla":1,"adi-ray":1,"dnim":1,"Luzifer":1,"Tanujgarg37":1,"Cypresslin":1,"shivangi3001":1,"laulowen":1,"azzsamir":1,"danwyk":1,"GRyabkin":1,"ArishSultan":1,"croesch":1,"Shruti-S0405":1,"monkeywithacupcake":1,"c-schuhmann":1,"HimajPatil":1,"petervdv":1,"Dwarfex":1,"jainilDesai":1,"olivier5741":1,"fossabot":1,"jhutchings1":1,"goverdhan07":1,"omerfaruk-cakmak":1,"odin-h":1,"AnasDharar":1,"hstauff":1,"hakuamesan":1,"k3lyan":1,"PrajwalM2212":1,"shamun-khatri":1,"omahs":1,"ms10398":1,"aquilax":1,"emmapeel2":1,"Codeioholic":1,"simonghrt":1,"dennisahlqvist":1,"jaens":1,"emmanuel-ferdman":1,"archanox":1,"leonidlednev":1,"sulletf":1,"fmarghi":1,"code-a1":1,"IWouldShiverTheWholeNightThrough":1,"SantosSi":1,"advaitathreya":1,"Karljoones":1,"noatime":1,"Jecrivaine":1,"NejmaCHAABANI":1,"davidoskky":1,"JBelcoco":1,"Lampone":1,"jasmeet0817":1,"prometheas":1,"thestarsahil":1,"ditsuke":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-21T00:00:06.750Z","repositories_count":13849749,"issues_count":34738467,"pull_requests_count":113419162,"authors_count":11208085,"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":{"🧽 Data quality":4,"👩‍💻 DevOps":4,"GitHub Actions":3,"🏷️ Folksonomy Project":3,"REDIS":3,"product-specific issue":2,"github_actions":2,"🚅 Performance":2,"🧴 Open Beauty Facts":2,"🛣️ Road to scores":2,"🏭 Producers Platform - data imports":2,"Nutrition facts":2,"P2":2,"👥 User management":2,"Web components":2,"🤖 Robotoff":2,"🚦 Nutri-Score":2,"🧬 Taxonomies":2,"openfoodfacts-query":2,"🧪 integration tests":2,"🧪 tests":2,"🏭 Producers Platform":2,"🧽  Data quality - Nutrition":2,"🎯 P1":1,"🐛 bug":1,"Data export":1,"Minion":1,"📚 Documentation":1,"postgresql":1,"✏️ Editing":1,"🌐 Translations":1,"top navigation":1,"🖼️ Images":1,"Road to app":1,"👮 Moderation":1,"brokenlinks":1,"static content":1,"🥗🔍 Ingredients analysis":1,"🌱 Green-Score":1,"📍 Origins":1,"categories":1,"palm oil":1,"🌱 Vegan":1,"Vegetarian":1,"Ecobalyse":1,"Russian":1,"needs investigation":1,"🎨 Design":1,"🎁 donations":1,"🕷️ SEO":1,"API":1,"🔐 API auth":1,"🤳🥫 mobile apps":1,"good first issue":1,"help wanted":1,"facets":1,"infrastructure":1,"GS1":1,"📖 Knowledge Panels":1,"🤳🥫 blocking mobile apps":1,"🔎 Search":1,":star: top issue":1},"past_year_pull_request_labels_count":{"🧬 Taxonomies":234,"🧪 tests":189,"dependencies":133,"📚 Documentation":124,"🥗🔍 Ingredients analysis":98,"categories":97,"JavaScript":66,"Template::Toolkit":62,"💥 Merge Conflicts":61,"GitHub Actions":60,"🧴 Open Beauty Facts":51,"Display":49,"🌐 Translations":43,"🧪 additives":39,"Ingredients processing":38,"Tags":36,"📦 Packaging":34,"📸 Open Products Facts":29,"🏭 Producers Platform":29,"API":28,"📚 OpenAPI":27,"📖 Knowledge Panels":26,"🖼️ Images":25,"🧪 unit tests":25,"config":25,"Paris Perl Hackathon":23,"API v3":23,"🐋 Docker":22,"autorelease: pending":20,"🧽 Data quality":20,"Products":19,"🐾 Open Pet Food Facts":19,"multilingual products":19,"🥜 Allergens":18,"🇸🇪 Sweden":17,"github_actions":17,"Food.pm":16,"🧪 integration tests":16,"Data import":16,"Product Page":14,"brands":12,":star: top pull request":12,"📍 Origins":12,"📍🏭 Packager codes":12,"autorelease: tagged":12,"🤖 Robotoff":11,"Site layout":11,"update all products":11,"👥 Users":11,"API READ":11,"docker":11,"GS1":11,"🚦 Nutri-Score":10,"🎁 donations":10,"Web components":10,"export":9,"exports":9,"API WRITE":9,"NGINX":9,"👮 Moderation":9,"🌱 Vegan":9,"CSS":8,"facets":7,"Nutrition facts":7,"✏️ Editing":6,"📦 Packaging shapes":6,"REDIS":6,"🇩🇰 Denmark":6,"MongoDB":5,"Attributes":5,"German":5,"Czech":5,"Scanbot":5,"🌾 gluten":4,"🏭 Producers Platform - Odoo":4,"📨 Mail":4,"🔎 Search":4,"Nutrients":4,"openfoodfacts-query":4,"🇫🇮 Finland":4,"Denmark":4,"🍬 How much sugar":4,"🕹️ Gamification":3,"🍊 Open Food Facts":3,"🔐 Password":3,"🔐 Auth":3,"palm oil":3,"🏭 Orgs":3,"store":3,"🏷️ Folksonomy Project":3,"URL":3,"Vegetarian":3,"WikiData":3,"product history":3,"icons":3,"👩‍💻 DevOps":3,"checkbot":3,"📨 Emails - Brevo":3,"Croatia":3,"👥 User management":3,"MainCountries":2,"STO":2,"OCR":2,"🇮🇳 India":2,"Ecobalyse":2,"postgresql":2,"🪶 Apache":2,"Czech republic":2,"✏️ Editing - Auto Suggest":2,"Web":2,"status system":2,"🎯 P0":2,"✔︎ Spellcheck":2,"🧬 Taxonomy editor":2,"Poland":2,"labels":2,"🗺️ Made Near Me":2,"Dutch":2,"recipes":2,"🧽 Data quality - Remediation":2,"Recent changes":2,"🇳🇴 Norway":2,"CORS":2,"Account deletion":1,"Nova - Ultra-processed foods":1,"3rd party Knowledge Panels":1,"⏲️ 5 minute fix":1,"matomo":1,"Taxonomies":1,"Allergens":1,"Stores":1,"file import":1,"Progressive Web App":1,"responsive ux":1,"Austria":1,"🇩🇪 Germany":1,"🧽 Data quality - edit rules":1,"script-writing":1,"maintenance":1,"🎨 Design":1,"systemd":1,".well-known":1,"🤳🥫 blocking mobile apps":1,"Fruits \u0026 Vegetables":1},"past_year_issue_author_associations_count":{"CONTRIBUTOR":69,"MEMBER":69,"NONE":27,"COLLABORATOR":19},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":524,"MEMBER":187,"COLLABORATOR":139,"NONE":39},"past_year_issue_authors":{"teolemon":49,"stephanegigandet":17,"manon-corneille":14,"Freso":11,"john-gom":9,"jayaddison":9,"CharlesNepote":8,"g123k":7,"raphael0202":6,"alexgarel":5,"hangy":5,"sentry-io[bot]":4,"galnaf":4,"monsieurtanuki":2,"moon-rabbitOFF":2,"Naruyoko":2,"benbenben2":2,"aleene":2,"RayanGoubet":1,"RiyanshiTomar":1,"pepperino217":1,"Ov-ille":1,"openfoodfacts-bot":1,"SoftSage07":1,"VaiTon":1,"vertigo220":1,"mvark":1,"ygaspoz":1,"milahu":1,"Mehak-Parveen":1,"jforget":1,"JamesMahy":1,"JagjeevanAK":1,"IceIsFrozen":1,"github-throwaway":1,"FRAdrien":1,"fgouget":1,"Faltenreich":1,"diesieben07":1,"Diegovsky":1,"cannoyroy":1,"azzsamir":1,"areebahmeddd":1,"22404sonalmishra":1},"past_year_pull_request_authors":{"stephanegigandet":108,"Freso":100,"teolemon":94,"dependabot[bot]":93,"moon-rabbitOFF":60,"openfoodfacts-bot":54,"alexgarel":43,"john-gom":35,"benbenben2":26,"JagjeevanAK":25,"jayaddison":24,"hangy":19,"RayanGoubet":19,"Copilot":18,"Kout95":17,"CharlesNepote":16,"raphael0202":13,"leonarf":13,"Vic142":11,"aleene":9,"areebahmeddd":8,"pauamma":8,"abderhman487":6,"OpenChris":6,"tuukka":5,"vansasuu":4,"Pawan8538":4,"alexfauquette":4,"medape":4,"kirtanchandak":3,"nuraiman":2,"Vikas4245":2,"owusunp":2,"VaiTon":2,"rajanarahul93":2,"Teiron":2,"rohan-mate-28":2,"1DhruvPatel":2,"albertaillet":2,"garvit-bhattt":2,"eseyman":2,"andylin2004":2,"dereineLauch":2,"57200":1,"adi-ray":1,"AlperMulayim":1,"AnasDharar":1,"anthonyryan1":1,"star-warrior":1,"azzsamir":1,"emmanuel-ferdman":1,"IWouldShiverTheWholeNightThrough":1,"jainilDesai":1,"jforget":1,"manon-corneille":1,"michael-golden":1,"NejmaCHAABANI":1},"maintainers":[{"login":"teolemon","count":3229,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/teolemon"},{"login":"alexgarel","count":653,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexgarel"},{"login":"hangy","count":452,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hangy"},{"login":"benbenben2","count":307,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/benbenben2"},{"login":"CharlesNepote","count":266,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CharlesNepote"},{"login":"VaiTon","count":92,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/VaiTon"},{"login":"4nt0ineB","count":89,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/4nt0ineB"},{"login":"Freso","count":84,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Freso"},{"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":"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":"TCatinaud","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TCatinaud"},{"login":"astagi","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/astagi"},{"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":"M123-dev","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/M123-dev"},{"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":"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":"AlperMulayim","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/AlperMulayim"},{"login":"raphodn","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/raphodn"},{"login":"NejmaCHAABANI","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NejmaCHAABANI"},{"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":"Karljoones","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Karljoones"},{"login":"Dwarfex","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Dwarfex"},{"login":"PrajwalM2212","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/PrajwalM2212"}],"active_maintainers":[{"login":"teolemon","count":143,"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":48,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexgarel"},{"login":"benbenben2","count":28,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/benbenben2"},{"login":"CharlesNepote","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CharlesNepote"},{"login":"hangy","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hangy"},{"login":"RayanGoubet","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/RayanGoubet"},{"login":"Kout95","count":17,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Kout95"},{"login":"areebahmeddd","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/areebahmeddd"},{"login":"g123k","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/g123k"},{"login":"alexfauquette","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alexfauquette"},{"login":"VaiTon","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/VaiTon"},{"login":"AlperMulayim","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/AlperMulayim"},{"login":"github-throwaway","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/github-throwaway"},{"login":"NejmaCHAABANI","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/NejmaCHAABANI"}]},"events":{"total":{"ForkEvent":114,"CreateEvent":717,"CommitCommentEvent":2,"ReleaseEvent":25,"IssuesEvent":621,"WatchEvent":157,"DeleteEvent":603,"MemberEvent":7,"IssueCommentEvent":10250,"PushEvent":9384,"PullRequestReviewCommentEvent":1079,"PullRequestReviewEvent":1824,"PullRequestEvent":1693},"last_year":{"ForkEvent":116,"CreateEvent":740,"CommitCommentEvent":2,"ReleaseEvent":27,"IssuesEvent":641,"WatchEvent":163,"DeleteEvent":616,"MemberEvent":7,"IssueCommentEvent":10466,"PushEvent":9570,"PullRequestReviewCommentEvent":1103,"PullRequestReviewEvent":1864,"PullRequestEvent":1735}},"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/daily.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:19.942Z","updated_at":"2023-09-28T10:59:19.942Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/daily.yml","dependencies":[{"id":13995165191,"package_name":"appleboy/ssh-action","ecosystem":"actions","requirements":"master","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/github-projects.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.000Z","updated_at":"2023-09-28T10:59:20.000Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/github-projects.yml","dependencies":[{"id":13995165195,"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/mongo-deploy.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.017Z","updated_at":"2023-09-28T10:59:20.017Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/mongo-deploy.yml","dependencies":[{"id":13995165198,"package_name":"appleboy/ssh-action","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/stale.yml","sha":null,"kind":"manifest","created_at":"2023-09-28T10:59:20.042Z","updated_at":"2023-09-28T10:59:20.042Z","repository_link":"https://github.com/openfoodfacts/openfoodfacts-server/blob/main/.github/workflows/stale.yml","dependencies":[{"id":13995165209,"package_name":"actions/stale","ecosystem":"actions","requirements":"v8","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":[]}],"score":13.53392718392102,"created_at":"2023-09-11T11:54:36.880Z","updated_at":"2026-04-08T03:30:37.976Z","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","gsoc","kotlin-android","translation","nutriscore","dartlang","gamification","dart","mobile-app","flutter-app"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/1092","html_url":"https://ost.ecosyste.ms/projects/1092"}