mirror of
https://github.com/bitwarden/android.git
synced 2026-03-26 08:12:00 -05:00
89 lines
3.0 KiB
YAML
89 lines
3.0 KiB
YAML
name: Scan Pull Requests
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request_target:
|
|
types: [opened, synchronize]
|
|
|
|
jobs:
|
|
check-run:
|
|
name: Check PR run
|
|
uses: bitwarden/gh-actions/.github/workflows/check-run.yml@main
|
|
|
|
sast:
|
|
name: SAST scan
|
|
runs-on: ubuntu-24.04
|
|
needs: check-run
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
security-events: write
|
|
|
|
steps:
|
|
- name: Check out repo
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Scan with Checkmarx
|
|
uses: checkmarx/ast-github-action@184bf2f64f55d1c93fd6636d539edf274703e434 # 2.0.41
|
|
env:
|
|
INCREMENTAL: "${{ contains(github.event_name, 'pull_request') && '--sast-incremental' || '' }}"
|
|
with:
|
|
project_name: ${{ github.repository }}
|
|
cx_tenant: ${{ secrets.CHECKMARX_TENANT }}
|
|
base_uri: https://ast.checkmarx.net/
|
|
cx_client_id: ${{ secrets.CHECKMARX_CLIENT_ID }}
|
|
cx_client_secret: ${{ secrets.CHECKMARX_SECRET }}
|
|
additional_params: |
|
|
--report-format sarif \
|
|
--filter "state=TO_VERIFY;PROPOSED_NOT_EXPLOITABLE;CONFIRMED;URGENT" \
|
|
--output-path . ${{ env.INCREMENTAL }}
|
|
|
|
- name: Get branch refs
|
|
id: get-branch-refs
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
_PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
run: |
|
|
if [[ $GITHUB_EVENT_NAME == "pull_request_target" ]]; then
|
|
MERGE_SHA=$(gh api /repos/$GITHUB_REPOSITORY/pulls/$_PR_NUMBER --jq .merge_commit_sha)
|
|
echo "SHA=$MERGE_SHA" >> $GITHUB_OUTPUT
|
|
echo "REF=refs/pull/$_PR_NUMBER/merge" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "SHA=$GITHUB_SHA" >> $GITHUB_OUTPUT
|
|
echo "REF=$GITHUB_REF" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Upload Checkmarx results to GitHub
|
|
uses: github/codeql-action/upload-sarif@b6a472f63d85b9c78a3ac5e89422239fc15e9b3c # v3.28.1
|
|
with:
|
|
sarif_file: cx_result.sarif
|
|
sha: ${{ steps.get-branch-refs.outputs.SHA }}
|
|
ref: ${{ steps.get-branch-refs.outputs.REF }}
|
|
|
|
quality:
|
|
name: Quality scan
|
|
runs-on: ubuntu-24.04
|
|
needs: check-run
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
|
|
steps:
|
|
- name: Check out repo
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
fetch-depth: 0
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Scan with SonarCloud
|
|
uses: sonarsource/sonarqube-scan-action@bfd4e558cda28cda6b5defafb9232d191be8c203 # v4.2.1
|
|
env:
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
with:
|
|
args: >
|
|
-Dsonar.organization=${{ github.repository_owner }}
|
|
-Dsonar.projectKey=${{ github.repository_owner }}_${{ github.event.repository.name }}
|
|
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }}
|