bitbucket-pipelines.yml:
image: mcr.microsoft.com/dotnet/sdk:9.0
pipelines:
default:
- step:
name: CodeCharter
caches:
- codecharter
script:
- curl -sSL -H "Authorization: Bearer $CODECHARTER_API_KEY" \
-o codecharter.tar.gz \
https://codecharter.tools/api/v1/cli/linux-x64/1.4.0
- mkdir -p /opt/codecharter && tar -xzf codecharter.tar.gz -C /opt/codecharter
- chmod +x /opt/codecharter/codecharter
- export PATH="/opt/codecharter:$PATH"
- codecharter analyze . --fail-on error --output console
artifacts:
- codecharter.sarif
definitions:
caches:
codecharter: ~/.cache/codecharter
API-Key
In Bitbucket: Repository settings → Repository variables, Variable
CODECHARTER_API_KEY anlegen, "Secured" aktivieren.
PR-Annotations via Bitbucket Reports API
Optional könnt ihr die Findings als Bitbucket Code Insights posten. CodeCharter hat dafür keinen direkten Konverter, aber das JSON-Format ist gut handzuhaben:
- codecharter analyze . --output json --output-file findings.json
- # Wandle findings.json in Code-Insights-API-Calls um
- python3 ./scripts/publish-to-bitbucket-insights.py findings.json
Caching
Der caches: codecharter-Block oben mit der Custom-Cache-Definition
unten persistiert ~/.cache/codecharter zwischen Pipelines.
Versions-Pinning
Wie immer empfohlen: konkrete CLI-Version pinnen, siehe Versionierung.