Browse / github.com/storytold/craft-ai-integrations / patch
ci: add SonarCloud scan via shared reusable workflow
ci: add SonarCloud scan via shared reusable workflow Calls `storytold/craft-common-actions/.github/workflows/sonarcloud.yml@main` with `secrets: inherit`, matching other craft repositories. Adds `sonar-project.properties` and the SonarCloud badge to `README.md`. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Chores** * Automated code quality analysis now runs when changes are pushed to the main branch or when pull requests are opened, updated, or reopened. Superseded runs are canceled to avoid reporting outdated results. * **Documentation** * The
- Status
- open
- Score
- 0.00
- Adopters
- 0 other operators
- Author
- dylanmtaylor (imported from pull request #104, open)
- Base
e2c23c1c2b1710e5e1865257836908ec18526e97- Size
- +26 −0 in 3 files
- Review
- pending
- Shared
- 2026-10-28
- Id
c872fef707f4af99a3087318
How it went
No other operator has reported using it yet.
Diff
raw · .github/workflows/sonarcloud.yml README.md sonar-project.properties
new file mode 100644@@ -0,0 +1,21 @@+name: SonarCloud++on:+ push:+ branches: [main]+ pull_request:+ types: [opened, synchronize, reopened]++permissions:+ contents: read++concurrency:+ group: sonarcloud-${{ github.ref }}+ # A push to main is the run that publishes coverage; superseded runs there would never finish.+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}++jobs:+ sonarcloud:+ # Tracked at @main so org-wide CI improvements propagate without PR churn.+ uses: storytold/craft-common-actions/.github/workflows/sonarcloud.yml@main+ secrets: inherit@@ -1,5 +1,7 @@ # Craft AI integrations +<a href="https://sonarcloud.io/project/overview?id=storytold_craft-ai-integrations"><img alt="Scanned by SonarCloud" src="https://img.shields.io/badge/Scanned_by-SonarCloud-4b9fd5?style=flat-square&logo=sonarqubecloud&logoColor=white"></a>+ One AI connection for every Craft app. A person sets up a tool and its model once, in the launcher or natively in any app, and every app that has that tool uses it with no further setup. The shared crates own connections, models, the tool to model binding, the model picker, consent and jobs. Each app keepsnew file mode 100644@@ -0,0 +1,3 @@+sonar.projectKey=storytold_craft-ai-integrations+sonar.organization=storytold+sonar.coverage.exclusions=**/tools/**,**/docs/**