{"id":14482819,"url":"https://github.com/CatalaLang/catala","last_synced_at":"2025-08-30T03:32:12.903Z","repository":{"id":38192302,"uuid":"256540434","full_name":"CatalaLang/catala","owner":"CatalaLang","description":"Programming language for literate programming law specification","archived":false,"fork":false,"pushed_at":"2025-08-21T16:34:15.000Z","size":64651,"stargazers_count":2093,"open_issues_count":86,"forks_count":79,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-08-21T19:13:02.913Z","etag":null,"topics":["legislative-texts","programming-language"],"latest_commit_sha":null,"homepage":"https://catala-lang.org","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CatalaLang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":"publiccode.yml","codemeta":null,"zenodo":null}},"created_at":"2020-04-17T15:27:10.000Z","updated_at":"2025-08-21T12:04:25.000Z","dependencies_parsed_at":"2023-02-17T04:30:42.078Z","dependency_job_id":"43ae3b32-883e-4167-866c-91010f97bf67","html_url":"https://github.com/CatalaLang/catala","commit_stats":{"total_commits":3767,"total_committers":63,"mean_commits":59.79365079365079,"dds":0.5864082824528802,"last_synced_commit":"a7ab01bf64d7432656289cbd8bb421edf31d64e1"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/CatalaLang/catala","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CatalaLang%2Fcatala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CatalaLang%2Fcatala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CatalaLang%2Fcatala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CatalaLang%2Fcatala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CatalaLang","download_url":"https://codeload.github.com/CatalaLang/catala/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CatalaLang%2Fcatala/sbom","scorecard":{"id":4387,"data":{"date":"2025-08-11","repo":{"name":"github.com/CatalaLang/catala","commit":"f82c897d1a73758d034f2fd3b4ca7a567f32a608"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 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":0,"reason":"Found 1/11 approved changesets -- score normalized to 0","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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/harness.yml:231","Warn: no topLevel permission defined: .github/workflows/harness.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":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","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":"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":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.head_ref || github.ref_name ': .github/workflows/harness.yml:145","Warn: script injection with untrusted input ' github.head_ref || github.ref_name ': .github/workflows/harness.yml:163","Warn: script injection with untrusted input ' github.head_ref || github.ref_name ': .github/workflows/harness.yml:42"],"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":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"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":"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.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt: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 0.10.0 not signed: https://api.github.com/repos/CatalaLang/catala/releases/154029353","Warn: release artifact 0.9.0 not signed: https://api.github.com/repos/CatalaLang/catala/releases/138494827","Warn: release artifact 0.8.0 not signed: https://api.github.com/repos/CatalaLang/catala/releases/95031112","Warn: release artifact 0.7.0 not signed: https://api.github.com/repos/CatalaLang/catala/releases/73967442","Warn: release artifact 0.10.0 does not have provenance: https://api.github.com/repos/CatalaLang/catala/releases/154029353","Warn: release artifact 0.9.0 does not have provenance: https://api.github.com/repos/CatalaLang/catala/releases/138494827","Warn: release artifact 0.8.0 does not have provenance: https://api.github.com/repos/CatalaLang/catala/releases/95031112","Warn: release artifact 0.7.0 does not have provenance: https://api.github.com/repos/CatalaLang/catala/releases/73967442"],"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"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":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/harness.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:111: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:158: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/harness.yml:195: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/harness.yml:244: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/harness.yml:246: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/harness.yml:250: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/harness.yml:259: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/harness.yml:264: update your workflow using https://app.stepsecurity.io/secureworkflow/CatalaLang/catala/harness.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:9","Warn: containerImage not pinned by hash: Dockerfile:38","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage 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"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/harness.yml:21"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 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"}}]},"last_synced_at":"2025-08-14T13:14:23.467Z","repository_id":38192302,"created_at":"2025-08-14T13:14:23.468Z","updated_at":"2025-08-14T13:14:23.468Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272800741,"owners_count":24995138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["legislative-texts","programming-language"],"created_at":"2024-09-03T00:01:18.655Z","updated_at":"2025-08-30T03:32:12.836Z","avatar_url":"https://github.com/CatalaLang.png","language":"OCaml","funding_links":[],"categories":["OCaml","[🔬 semantics](https://github.com/stars/ketsapiwiq/lists/semantics)","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/CatalaLang/catala/raw/master/doc/images/logo.png\" alt=\"Catala logo\" width=\"120\"/\u003e\n  \u003ch3 align=\"center\"\u003e\n\t\u003cbig\u003eCatala\u003c/big\u003e\n  \u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n   \u003ca href=\"https://book.catala-lang.org/\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n   \u003cbr/\u003e\n   \u003ca href=\"https://book.catala-lang.org/1-0-getting_started.html\"\u003eGetting started\u003c/a\u003e\n   •\n   \u003ca href=\"https://github.com/CatalaLang/catala/issues\"\u003eReport Bug\u003c/a\u003e\n   •\n   \u003ca href=\"https://github.com/CatalaLang/catala/blob/master/CONTRIBUTING.md\"\u003eContribute\u003c/a\u003e\n   •\n   \u003ca href=\"https://zulip.catala-lang.org/\"\u003eJoin Zulip Chat\u003c/a\u003e\n  \u003c/p\u003e\n\n![CI][ci-link] [![Opam][opam-link]](https://opam.ocaml.org/packages/catala/) [![Licence][licence-link]](https://www.apache.org/licenses/LICENSE-2.0) ![Tag][tag-link] ![Language][language-link] [![Issues][issues-link]](https://github.com/CatalaLang/catala/issues) [![Contributors][contributors-link]](https://github.com/CatalaLang/catala/graphs/contributors) [![Activity][activity-link]](https://github.com/CatalaLang/catala/pulse)\n\nCatala is a domain-specific language for deriving\nfaithful-by-construction algorithms from legislative texts. To learn quickly\nabout the language and its features, you can jump right to the official\n[Catala tutorial](https://book.catala-lang.org/2-0-tutorial.html).\nYou can join the Catala community on [Zulip][chat-link]!\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n\u003c!-- vim-markdown-toc GitLab --\u003e\n\n* [Concepts](#concepts)\n* [The Catala book](#the-catala-book)\n* [IDE Extensions and Tooling](#ide-extensions-and-tooling)\n  * [Syntax highlighting](#syntax-highlighting)\n  * [Catala VScode extension](#catala-vscode-extension)\n  * [Code formatting](#code-formatting)\n* [Documentation](#documentation)\n  * [Syntax cheat sheet](#syntax-cheat-sheet)\n  * [Formal semantics](#formal-semantics)\n  * [Compiler documentation](#compiler-documentation)\n* [Examples](#examples)\n* [API](#api)\n* [Contributing](#contributing)\n* [Test suite](#test-suite)\n* [License](#license)\n* [Limitations and disclaimer](#limitations-and-disclaimer)\n* [Pierre Catala](#pierre-catala)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n\u003c/details\u003e\n\n## Concepts\n\nCatala is a programming language adapted for socio-fiscal legislative literate\nprogramming. By annotating each line of the legislative text with its meaning\nin terms of code, one can derive an implementation of complex socio-fiscal\nmechanisms that enjoys a high level of assurance regarding the code-law\nfaithfulness.\n\nConcretely, you have to first gather all the laws, executive orders, previous\ncases, etc. that contain information about the socio-fiscal mechanism that\nyou want to implement. Then, you can proceed to annotate the text article by\narticle, in your favorite text editor :\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/CatalaLang/catala/raw/master/doc/images/ScreenShotVSCode.png\" alt=\"Screenshot\" height=\"350\"/\u003e\n\u003c/div\u003e\n\nOnce your code is complete and tested, you can use the Catala\ncompiler to produce a lawyer-readable PDF version of your\nimplementation. The Catala language has been specially designed\nin collaboration with law professionals to ensure that the code\ncan be reviewed and certified correct by the domain experts, which\nare in this case lawyers and not programmers.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/CatalaLang/catala/raw/master/doc/images/CatalaScreenShot.png\" alt=\"Screenshot\" height=\"350\"/\u003e\n\u003c/div\u003e\n\nThe Catala language is special because its logical structure mimics\nthe logical structure of the law. Indeed, the core concept of\n\"definition-under-conditions\" that builds on default logic has been formalized\nby Professor Sarah Lawsky in her article\n[A Logic for Statutes](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3088206).\nThe Catala language is the only programming language to our knowledge that\nembeds default logic as a first-class feature, which is why it is the only\nlanguage perfectly adapted to literate legislative programming.\n\n## The Catala Book\n\nThe one-stop-shop for tutorials, installation instructions, FAQ and reference\nguide about Catala is the [Catala book](https://book.catala-lang.org) available\nat:\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://book.catala-lang.org\"\u003ehttps://book.catala-lang.org\u003c/a\u003e\n\u003c/div\u003e\n\n## IDE Extensions and Tooling\n\n### Syntax highlighting\n\nSyntax highlighting is available for several text-editors. Scripts can\nbe found\n[here](https://github.com/CatalaLang/catala/tree/master/syntax_highlighting).\n\n### Catala VSCode Extension\n\nA VSCode extension for Catala is available [on the\nmarketplace](https://marketplace.visualstudio.com/items?itemName=catalalang.catala).\nIt bundles a syntax highlighter and a dedicated LSP server which\noffers support for code navigation, auto-completion along with a UX\nfor test suites. See the [dedicated\nrepository](https://github.com/catalaLang/catala-language-server) for\nmore details.\n\n### Code formatting\n\nA code formatting tool, `catala-format` is available alongside the LSP\nserver. If installed, code formatting is directly available in VSCode.\nThis tool is based on a [`tree-sitter`\ngrammar](https://github.com/CatalaLang/tree-sitter-catala) for\nCatala. See the [dedicated\nrepository](https://github.com/catalaLang/catala-format) for more\ndetails.\n\n## Additional documentation items\n\n### Syntax cheat sheet\n\nA complete and handy reference of the Catala syntax can be found in\nthe [cheat sheet](https://catalalang.github.io/catala/syntax.pdf) (for\nFrench and English versions of the syntax).\n\n### Formal semantics\n\nTo audit the formal proof of the partial certification of the Catala compiler,\nsee [the dedicated readme](doc/formalization/README.md).\n\n### Compiler documentation\n\nThe documentation is accessible online, both for the [latest release](https://catala-lang.org/ocaml_docs/) and [bleeding-edge version](https://catalalang.github.io/catala/api-doc/).\n\n\nIt is otherwise generated from the compiler source code using\n`dune` and `odoc`. Run\n\n    make doc\n\nto generate the documentation, then open the `doc/odoc.html` file in any browser.\n\n## Examples\n\nTo explore the different programs written in Catala, see [the dedicated\nreadme](https://github.com/CatalaLang/catala-examples/blob/master/README.md).\n\n## API\n\nTo know how to use the code generated by the Catala compiler in your favorite\nprogramming language, head to the [readme of the French law\nlibrary](https://github.com/CatalaLang/french-law/blob/master/README.md). The\ncorresponding pre-built examples are also\n[available](https://catalalang.github.io/catala/).\n\n## Contributing\n\nTo know how you can contribute to the project, see\n[the dedicated readme](CONTRIBUTING.md).\n\n## Test suite\n\nTo know how to run or improve the Catala reference test suite,\nsee [the dedicated readme](tests/README.md).\n\n## License\n\nThe compiler and all the code contained in this repository is released under\nthe [Apache license (version 2)](LICENSE.txt) unless another license is explicited\nfor a sub-directory.\n\n## Limitations and disclaimer\n\nCatala is a research project from Inria, the French National\nResearch Institute for Computer Science. The compiler is yet\nunstable and lacks some of its features.\n\n## Pierre Catala\n\nThe language is named after Pierre Catala, a professor of law who\npionneered the French legaltech by creating a computer database of law cases,\nJuris-Data. The research group that he led in the late 1960s, the\nCentre d’études et de traitement de l’information juridique (CETIJ),\nhas also influenced the creation by state conselor Lucien Mehl of the\nCentre de recherches et développement en informatique juridique (CENIJ),\nwhich eventually transformed into the entity managing the LegiFrance website,\nacting as the public service of legislative documentation.\n\n[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg?style=social\u0026logo=zulip\u0026color=5c75a2\n[chat-link]: https://zulip.catala-lang.org/\n[ci-link]: https://github.com/catalalang/catala/actions/workflows/harness.yml/badge.svg\n[licence-link]: https://img.shields.io/github/license/catalalang/catala\n[tag-link]: https://img.shields.io/github/v/tag/catalalang/catala\n[loc-link]: https://img.shields.io/tokei/lines/github/catalalang/catala\n[issues-link]: https://img.shields.io/github/issues/catalalang/catala\n[opam-link]: https://img.shields.io/badge/Package-opam-orange?logo=OCaml\u0026link=https://opam.ocaml.org/packages/catala/\n[language-link]: https://img.shields.io/github/languages/top/catalalang/catala\n[contributors-link]: https://img.shields.io/github/contributors/catalalang/catala\n[activity-link]: https://img.shields.io/github/commit-activity/m/catalalang/catala\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCatalaLang%2Fcatala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCatalaLang%2Fcatala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCatalaLang%2Fcatala/lists"}