@@ -41,13 +41,23 @@ inputs:
4141 description : ' Enable verbose logging'
4242 required : false
4343 default : ' true'
44+ qualityGate :
45+ description : ' Enable quality gate checking'
46+ required : false
47+ default : ' false'
4448 continueOnError :
4549 description : ' Continue workflow execution even if scan fails'
4650 required : false
4751 default : ' true'
4852outputs :
4953 status :
5054 description : ' Status of the scan'
55+ qualityGateStatus :
56+ description : ' Quality gate status (PASSED/FAILED)'
57+ value : ${{ steps.quality-gate.outputs.status }}
58+ qualityGateData :
59+ description : ' Quality gate detailed data'
60+ value : ${{ steps.quality-gate.outputs.data }}
5161runs :
5262 using : ' composite'
5363 steps :
@@ -80,11 +90,38 @@ runs:
8090 VERBOSE_FLAG="-v"
8191 fi
8292
93+ QG_FLAG=""
94+ if [ "${{ inputs.qualityGate }}" = "true" ]; then
95+ QG_FLAG="-qg"
96+ fi
97+
8398 ./browserstack-codequality-scanner/bin/embold-scanner analyse \
8499 -u "${{ inputs.emboldUrl }}" \
85100 -t "$EMBOLD_TOKEN" \
86101 -r "${{ inputs.emboldRepoUid }}" \
87102 -c "${{ inputs.repositoryConfigPath }}" \
88103 -d "${{ inputs.tempDirectory }}" \
89104 -b "${{ inputs.baseDirectory }}" \
90- $VERBOSE_FLAG
105+ $VERBOSE_FLAG \
106+ $QG_FLAG
107+
108+ - name : Get Quality Gate Status
109+ if : ${{ inputs.qualityGate == 'true' }}
110+ id : quality-gate
111+ shell : bash
112+ env :
113+ EMBOLD_TOKEN : ${{ inputs.emboldToken }}
114+ run : |
115+ echo "Fetching quality gate status..."
116+
117+ response=$(curl --silent --http1.1 -X GET \
118+ "${{ inputs.emboldUrl }}/api/v1/repositories/${{ inputs.emboldRepoUid }}/qualitygateprofiles/status" \
119+ -H "Authorization: Bearer $EMBOLD_TOKEN")
120+
121+ status=$(echo "$response" | grep -o '"status":"[^"]*"' | cut -d'"' -f4)
122+
123+ echo "Quality Gate Status: $status"
124+ echo "status=$status" >> $GITHUB_OUTPUT
125+ echo "data=$response" >> $GITHUB_OUTPUT
126+
127+ echo "::notice title=Quality Gate::Status: $status"
0 commit comments