Coverage in CI
Gate pull requests on requirements coverage. The action calls the single source of truth endpointGET /api/coverage/project/:projectId/status.
name: Requirements Coverage
'on':
pull_request: {}
jobs:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check requirements coverage
env:
NODURA_BASE_URL: ${{ secrets.NODURA_BASE_URL }}
NODURA_API_TOKEN: ${{ secrets.NODURA_API_TOKEN }}
NODURA_PROJECT_ID: ${{ secrets.NODURA_PROJECT_ID }}
run: |
STATUS=$(curl -sS -H "Authorization: Bearer $NODURA_API_TOKEN" \
"$NODURA_BASE_URL/api/coverage/project/$NODURA_PROJECT_ID/status" | jq -r '.data.status')
echo "status=$STATUS"
if [ "$STATUS" != "pass" ] && [ "$STATUS" != "pass_with_override" ]; then
echo "Requirements coverage failed"
exit 1
fiSet the three secrets in your repository settings. Optionally require this job in Branch Protection.