File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -27,13 +27,36 @@ jobs:
2727 tenant-id : ${{ vars.AZURE_TENANT_ID }}
2828 subscription-id : ${{ vars.AZURE_SUBSCRIPTION_ID }}
2929
30- - name : Read SonarCloud token from Key Vault
30+ - name : Resolve SonarCloud token
3131 shell : bash
32+ env :
33+ FALLBACK_SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
3234 run : |
33- SONAR_TOKEN ="$(az keyvault secret show \
35+ KV_SONAR_TOKEN ="$(az keyvault secret show \
3436 --vault-name "${{ vars.AZURE_KEYVAULT_NAME }}" \
3537 --name "sonar-cloud-token" \
36- --query value -o tsv)"
38+ --query value -o tsv 2>/dev/null || true)"
39+
40+ TOKEN_SOURCE=""
41+ if [ -n "${KV_SONAR_TOKEN}" ]; then
42+ KV_VALID="$(curl -sS -u "${KV_SONAR_TOKEN}:" https://sonarcloud.io/api/authentication/validate | grep -Eo 'true|false' | head -n1 || true)"
43+ if [ "${KV_VALID}" = "true" ]; then
44+ SONAR_TOKEN="${KV_SONAR_TOKEN}"
45+ TOKEN_SOURCE="keyvault"
46+ fi
47+ fi
48+
49+ if [ -z "${TOKEN_SOURCE}" ] && [ -n "${FALLBACK_SONAR_TOKEN:-}" ]; then
50+ SONAR_TOKEN="${FALLBACK_SONAR_TOKEN}"
51+ TOKEN_SOURCE="github-secret-fallback"
52+ fi
53+
54+ if [ -z "${TOKEN_SOURCE}" ]; then
55+ echo "No valid Sonar token found in Key Vault and no fallback secret available."
56+ exit 1
57+ fi
58+
59+ echo "::notice title=Sonar token source::${TOKEN_SOURCE}"
3760 echo "::add-mask::$SONAR_TOKEN"
3861 echo "SONAR_TOKEN=$SONAR_TOKEN" >> "$GITHUB_ENV"
3962
You can’t perform that action at this time.
0 commit comments