{"id":22844954,"url":"https://github.com/green-code-initiative/creedengo-rules-specifications","last_synced_at":"2025-05-16T09:04:06.194Z","repository":{"id":64218522,"uuid":"571790951","full_name":"green-code-initiative/creedengo-rules-specifications","owner":"green-code-initiative","description":"Reduce the environmental footprint of your software programs with SonarQube","archived":false,"fork":false,"pushed_at":"2025-05-06T00:54:29.000Z","size":5209,"stargazers_count":198,"open_issues_count":64,"forks_count":82,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-05-09T17:48:58.019Z","etag":null,"topics":["climate-change","code-quality","ecodesign","ecoscore","energy-efficiency","sonarqube","sonarqube-plugin","static-analysis","sustainability"],"latest_commit_sha":null,"homepage":"https://green-code-initiative.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/green-code-initiative.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-28T22:21:52.000Z","updated_at":"2025-05-04T15:59:38.000Z","dependencies_parsed_at":"2024-04-02T14:58:57.627Z","dependency_job_id":"6d01378c-f7e2-411e-b287-0c6359b681a6","html_url":"https://github.com/green-code-initiative/creedengo-rules-specifications","commit_stats":{"total_commits":1073,"total_committers":78,"mean_commits":"13.756410256410257","dds":0.6738117427772601,"last_synced_commit":"c1c55fe5ba167195e52db230590f672d6527f971"},"previous_names":["green-code-initiative/creedengo-rules-specifications","green-code-initiative/ecocode"],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-code-initiative%2Fcreedengo-rules-specifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-code-initiative%2Fcreedengo-rules-specifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-code-initiative%2Fcreedengo-rules-specifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/green-code-initiative%2Fcreedengo-rules-specifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/green-code-initiative","download_url":"https://codeload.github.com/green-code-initiative/creedengo-rules-specifications/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501557,"owners_count":22081528,"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","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":["climate-change","code-quality","ecodesign","ecoscore","energy-efficiency","sonarqube","sonarqube-plugin","static-analysis","sustainability"],"created_at":"2024-12-13T03:01:26.710Z","updated_at":"2025-05-16T09:04:06.182Z","avatar_url":"https://github.com/green-code-initiative.png","language":"Java","funding_links":[],"categories":["Java","Dev / Tooling","Consumption"],"sub_categories":["Code based","Computation and Communication"],"readme":"![Logo](docs/resources/creedengo_logo.png)\n======================================\n\n_creedengo_ is a collective project aiming to reduce environmental footprint of software at the code level. The goal of\nthe project is to provide a list of static code analyzers to highlight code structures that may have a negative\necological impact: energy and resources over-consumption, \"fatware\", shortening terminals' lifespan, etc.\n\n_creedengo_ is based on evolving catalogs of [good practices](docs/rules), for various technologies. A SonarQube plugin\nthen implements these catalogs as rules for scanning your projects.\n\n**Warning**: this is still a very early stage project. Any feedback or contribution will be highly appreciated. Please\nrefer to the contribution section.\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/green-code-initiative/creedengo-common/blob/main/doc/CODE_OF_CONDUCT.md)\n\n🌿 SonarQube Plugins\n-------------------\n\n7 technologies are supported by creedengo right now:\n\n- \"standard\" plugins :\n  - [Java plugin](https://github.com/green-code-initiative/creedengo-java)\n  - [JavaScript plugin](https://github.com/green-code-initiative/creedengo-javascript)\n  - [PHP plugin](https://github.com/green-code-initiative/creedengo-php)\n  - [Python plugin](https://github.com/green-code-initiative/creedengo-python)\n  - [C# plugin](https://github.com/green-code-initiative/creedengo-csharp)\n- mobile plugins :\n  - [Android plugin](https://github.com/green-code-initiative/ecoCode-android)\n  - [iOS plugin](https://github.com/green-code-initiative/creedengo-ios)\n\n![Screenshot](docs/resources/screenshot.PNG)\n\n### eco-design SonarQube plugin\n\n![Ekko logo](docs/resources/5ekko.png)\n\nThere are two kinds of plugins :\n\n- One for web / backoffice (PHP, Python, Java, JavaScript), using smells described in the 2nd edition of the repository\n  published in september 2015.\n  You can find all the\n  rules [here (in french)](https://docs.google.com/spreadsheets/d/1nujR4EnajnR0NSXjvBW3GytOopDyTfvl3eTk2XGLh5Y/edit#gid=1386834576).\n  The current repository is for web / backOffice\n- One for mobile (Android/iOS), using [a set of code smells](https://github.com/cnumr/best-practices-mobile) theorised\n  by Dr. Olivier Le Goaër.\n  You can find this plugin in the repository [here](https://github.com/green-code-initiative/ecoCode-android)\n\n### How a SonarQube plugin works\n\nCode is parsed to be transformed as AST. AST will allow you to access one or more nodes of your code.\nFor example, you’ll be able to access of all your `for` loop, to explore content etc.\n\nTo better understand AST structure, you can use the [AST Explorer](https://astexplorer.net/).\n\n### creedengo rules specification repository\n\nThis project contains the specifications of all creedengo rules, for all languages.\n\n#### Structure\n\nRules are organized by folder based on their ID in the [root rules folder](src/main/rules).\nEach of these folders contains a file with the metadata of the rule, and description by language.\n\nThe metadata file uses the format supported by\nthe [SonarSource Analyzers Commons](https://github.com/SonarSource/sonar-analyzer-commons/tree/master/commons) library.\nTo find out what values can be put there, we advise you to use the\nofficial [SonarQube documentation](https://docs.sonarsource.com/sonarqube/latest/user-guide/rules/overview/), and to\nrely on already existing files.\n\nHere is an example:\n\n```text\nsrc/main/rules\n├── GCI104\n│   ├── java\n│   │   ├── GCI104.asciidoc\n│   │   ├── GCI104.json\n│   ├── php\n│   │   ├── GCI104.asciidoc\n│   ├── python\n│   │   ├── GCI104.asciidoc\n│   └── GCI104.json\n├── ...\n```\n\nTo specify metadata for a given language (for example deprecate a rule only for a single language), it is possible to\ncreate a json file in the language folder, and this will be merged with the common file during build. The keys in the\nspecific file have priority and it is possible to add new ones but not to delete them from the global one.\n\n#### Description language\n\nThe description of the rules uses the ASCIIDOC format (\nwith [Markdown compatibility](https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/#markdown-compatibility))\nin order to allow the inclusion of other pages (this feature is not available in standard with Markdown).\n\nSee:\n\n* [AsciiDoc Syntax Quick Reference](https://docs.asciidoctor.org/asciidoc/latest/syntax-quick-reference/)\n* [Compare AsciiDoc to Markdown](https://docs.asciidoctor.org/asciidoc/latest/asciidoc-vs-markdown/)\n\n\n🚀 Getting Started\n------------------\n\nYou can quickly have a look of creedengo plugins with docker. Plase have a look at \"Getting started\" section of each plugin :\n\n- [Java plugin](https://github.com/green-code-initiative/creedengo-java?tab=readme-ov-file#-getting-started)\n- [PHP plugin](https://github.com/green-code-initiative/creedengo-php?tab=readme-ov-file#-getting-started)\n- [Python plugin](https://github.com/green-code-initiative/creedengo-python?tab=readme-ov-file#-getting-started)\n- [C# plugin](https://github.com/green-code-initiative/creedengo-csharp?tab=readme-ov-file#-getting-started)\n- [Android Java plugin](https://github.com/green-code-initiative/ecoCode-android?tab=readme-ov-file#-quickstart)\n\n🛒 Distribution\n------------------\n\nThe main way to get creedengo plugins is to download them from your SonarQube Marketplace (available in Administration section).\nBut if you want, you can also download them from GitHub releases.\n\nWe had split our plugins repository `creedengo` to one repository for each plugin on december 2023.\nThus, plugin versions are available on 2 repositories depending on version you want :\n\n- Java plugin :\n  - from 0.x to 1.4.3 : [creedengo repository](https://github.com/green-code-initiative/creedengo-rules-specifications/releases)\n  - since 1.5.0 : [creedengo-java repository](https://github.com/green-code-initiative/creedengo-java/releases)\n- PHP plugin :\n  - from 0.x to 1.3.1 : [creedengo repository](https://github.com/green-code-initiative/creedengo-rules-specifications/releases)\n  - since 1.4.0 : [creedengo-php repository](https://github.com/green-code-initiative/creedengo-php/releases)\n- Python plugin :\n  - from 0.x to 1.3.1 : [creedengo repository](https://github.com/green-code-initiative/creedengo-rules-specifications/releases)\n  - since 1.4.0 : [creedengo-python repository](https://github.com/green-code-initiative/creedengo-python/releases)\n- Javascript plugin :\n  - from 0.x to 1.3.0 : [creedengo repository](https://github.com/green-code-initiative/creedengo-rules-specifications/releases)\n  - since 1.4.0 : [creedengo-javascript repository](https://github.com/green-code-initiative/creedengo-javascript/releases)\n- C# plugin :\n  - since 0.x : [creedengo repository](https://github.com/green-code-initiative/creedengo-csharp/releases)\n- Android plugin : [creedengo-android repository](https://github.com/green-code-initiative/ecoCode-android/releases)\n- iOS plugin : [creedengo-ios repository](https://github.com/green-code-initiative/creedengo-ios/releases)\n\n🧩 Plugins version compatibility (OLD `ecocode` plugin)\n------------------\n\n| Plugins Version  | SonarQube version           |\n|------------------|-----------------------------|\n| 1.4.+            | SonarQube 9.4.+ LTS to 10.1 |\n| 1.3.+            | SonarQube 9.4.+ LTS to 10.0 |\n| 1.2.+            | SonarQube 9.4.+ LTS to 10.0 |\n| 1.1.+            | SonarQube 9.4.+ LTS to 9.9  |\n| 1.0.+            | SonarQube 9.4.+ LTS to 9.9  |\n| 0.2.+            | SonarQube 9.4.+ LTS to 9.9  |\n| 0.1.+            | SonarQube 8.9.+ LTS to 9.3  |\n\n☕ Plugin Java part compatibility (OLD `ecocode` plugin)\n------------------\n\n| Plugins Version  | Java version |\n|------------------|--------------|\n| 1.4.+            | 11 / 17      |\n| 1.3.+            | 11 / 17      |\n| 1.2.+            | 11 / 17      |\n| 1.1.+            | 11 / 17      |\n| 1.0.+            | 11 / 17      |\n| 0.2.+            | 11 / 17      |\n| 0.1.+            | 11 / 17      |\n\n🤝 Contribution\n---------------\n\nYou are a technical expert, a designer, a project manager, a CSR expert, an ecodesign expert...\n\nYou want to offer the help of your company, help us to organize, communicate on the project ?\n\nYou have ideas to submit to us ?\n\nWe are listening to you to make the project progress collectively, and maybe with you !\n\nWE NEED YOU !\n\nHere the [Starter pack](https://github.com/green-code-initiative/creedengo-common/blob/main/doc/starter-pack.md)\n\n🤓 Main contributors\n--------------------\n\nAny question ? We are here for you !\nfirst, create an issue, please.\nThen, if no answer, contact ...\n\n- [Jules Delecour](https://www.linkedin.com/in/jules-delecour-498680118/)\n- [Geoffrey Lalloué](https://github.com/glalloue)\n- [Julien Hertout](https://www.linkedin.com/in/julien-hertout-b1175449/)\n- [Justin Berque](https://www.linkedin.com/in/justin-berque-444412140)\n- [Olivier Le Goaër](https://olegoaer.perso.univ-pau.fr)\n- [Maxime DUBOIS](https://www.linkedin.com/in/maxime-dubois-%F0%9F%8C%B1-649a3a3/)\n- [David DE CARVALHO](https://www.linkedin.com/in/david%E2%80%8E-de-carvalho-8b395284/)\n- [Maxime MALGORN](https://www.linkedin.com/in/maximemalgorn/)\n- [Gilles GROUSSET](https://www.linkedin.com/in/gillesgrousset/)\n- [Vianney DE BELLABRE](https://www.linkedin.com/in/vianney-de-bellabre/)\n- [Jérôme CARDON](https://www.linkedin.com/in/jcardon79/)\n- [Johanna DUIGOU](https://www.linkedin.com/in/johannaduigou/)\n\n🧐 Core Team Emeriti\n--------------------\n\nHere we honor some no-longer-active core team members who have made valuable contributions in the past.\n\n- Gaël Pellevoizin\n- [Nicolas Daviet](https://github.com/NicolasDaviet)\n- [Mathilde Grapin](https://github.com/fkotd)\n\nThey have contributed to the success of creedengo :\n\n- [Davidson Consulting](https://www.davidson.fr/)\n- [Orange Business](https://www.orange-business.com/)\n- [Snapp'](https://www.snapp.fr/)\n- [Université de Pau et des Pays de l'Adour (UPPA)](https://www.univ-pau.fr/)\n- [Solocal](https://www.solocal.com/) / [PagesJaunes.fr](https://www.pagesjaunes.fr/)\n- [Capgemini](https://www.capgemini.fr/)\n- [Accenture](https://www.accenture.com/)\n\nThey supported the project :\n\n- [Région Nouvelle-Aquitaine](https://www.nouvelle-aquitaine.fr/)\n\nLinks\n-----\n\n- https://docs.sonarqube.org/latest/analysis/overview/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreen-code-initiative%2Fcreedengo-rules-specifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreen-code-initiative%2Fcreedengo-rules-specifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreen-code-initiative%2Fcreedengo-rules-specifications/lists"}