{"id":28496029,"url":"https://github.com/sonarsource/slang","last_synced_at":"2025-07-02T10:31:07.887Z","repository":{"id":33264493,"uuid":"135174794","full_name":"SonarSource/slang","owner":"SonarSource","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-21T00:24:11.000Z","size":7165,"stargazers_count":90,"open_issues_count":1,"forks_count":32,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-06-21T01:30:20.779Z","etag":null,"topics":["language-team"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SonarSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2018-05-28T14:52:00.000Z","updated_at":"2025-06-21T00:24:15.000Z","dependencies_parsed_at":"2024-01-16T01:48:17.034Z","dependency_job_id":"408fa4e4-04e3-4daa-a42b-58f2ac493335","html_url":"https://github.com/SonarSource/slang","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/SonarSource/slang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fslang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fslang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fslang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fslang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SonarSource","download_url":"https://codeload.github.com/SonarSource/slang/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SonarSource%2Fslang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263120601,"owners_count":23416851,"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":["language-team"],"created_at":"2025-06-08T11:38:27.429Z","updated_at":"2025-07-02T10:31:07.877Z","avatar_url":"https://github.com/SonarSource.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SLang\n\n[![Build Status](https://api.cirrus-ci.com/github/SonarSource/slang.svg?branch=master)](https://cirrus-ci.com/github/SonarSource/slang)\n[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=org.sonarsource.slang%3Aslang\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=org.sonarsource.slang%3Aslang)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=org.sonarsource.slang%3Aslang\u0026metric=coverage)](https://sonarcloud.io/component_measures/domain/Coverage?id=org.sonarsource.slang%3Aslang)\n\nSLang (SonarSource Language) is a framework to quickly develop code analyzers for SonarQube to help developers write [Clean Code](https://www.sonarsource.com/solutions/clean-code/?utm_medium=referral\u0026utm_source=github\u0026utm_campaign=clean-code\u0026utm_content=slang).\n\nSLang defines language-agnostic AST. Using this AST we can develop simple syntax-based rules. Then we use a parser for real language to create this AST.\n\n## Have questions or feedback?\n\nTo provide feedback (request a feature, report a bug, etc.) use the [SonarQube Community Forum](https://community.sonarsource.com/). Please do not forget to specify the language, plugin version, and SonarQube version.\n\n## Building\n\n### Setup\n\nInstall Java 17.\n\n### Build\nBuild and run Unit Tests:\n\n    ./gradlew build\n\n\n## License headers\n\nLicense headers are automatically updated by the spotless plugin but only for Java files. \nFurthermore, there are files such as `package-info.java` and `module-info.java` that spotless ignores. For those files use a manual script like below to update the license. E.g. on Mac:\n\n    `find . -type f -name \"*-info.java\" -exec sed -i '' 's/2018-2024/2018-2025/' \"{}\" \\;`\n\n## License\n\nCopyright 2018-2025 SonarSource\n\nSonarQube analyzers released after November 29, 2024, including patch fixes for prior versions, are published under the [Sonar Source-Available License Version 1 (SSALv1)](LICENSE).\n\nSee individual files for details that specify the license applicable to each file.\nFiles subject to the SSALv1 will be noted in their headers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonarsource%2Fslang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonarsource%2Fslang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonarsource%2Fslang/lists"}