Skip to content

GitHub Actions Integration

Prerequisites

  • GitHub Repository with code
  • BrowserStack Code Quality instance running at public URL (e.g., https://bscq.example.com)
  • Repository Added to BrowserStack Code Quality (see Configure Your First Scan)
  • Access Token from BrowserStack Code Quality User Settings
  • Docker available in runner (standard on ubuntu-latest)

Verify BrowserStack Code Quality URL is publicly accessible:

bash
curl -I https://your-bscq-instance.com

Configuration

GitHub Secret

Store your BrowserStack Code Quality access token as a GitHub Secret:

  1. Go to Settings > Secrets and variables > Actions
  2. Click New repository secret
  3. Name: BSCQ_TOKEN
  4. Value: <your-access-token>
  5. Click Add secret

Workflow File

Create .github/workflows/embold-scan.yml:

yaml
name: BrowserStack Code Quality Scan

on:
  push:
    branches:
      - main
      - develop
  pull_request:
    branches:
      - main
      - develop

jobs:
  embold-scan:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Run BrowserStack Code Quality scan
        run: |
          docker run --rm \
            -v "${{ github.workspace }}":/app \
            -e BSCQ_SERVER_URL="https://your-bscq-instance.com" \
            -e BSCQ_TOKEN="${{ secrets.BSCQ_TOKEN }}" \
            -e BSCQ_PROJECT_ID="<project-id>" \
            -e BSCQ_REPOSITORY_ID="<repository-id>" \
            -e CI_COMMIT_SHA="${{ github.sha }}" \
            -e CI_BRANCH_NAME="${{ github.ref_name }}" \
            browserstack/embold:latest scan

      - name: Check quality gate
        run: |
          docker run --rm \
            -v "${{ github.workspace }}":/app \
            -e BSCQ_SERVER_URL="https://your-bscq-instance.com" \
            -e BSCQ_TOKEN="${{ secrets.BSCQ_TOKEN }}" \
            -e BSCQ_PROJECT_ID="<project-id>" \
            browserstack/embold:latest gate-check

Parameters

VariableDescriptionExample
BSCQ_SERVER_URLBrowserStack Code Quality instance URLhttps://bscq.example.com
BSCQ_TOKENAPI token from User SettingsStore in GitHub Secret
BSCQ_PROJECT_IDProject ID from BrowserStack Code Quality12345
BSCQ_REPOSITORY_IDRepository ID from BrowserStack Code Quality67890
CI_COMMIT_SHAGit commit hash${{ github.sha }}
CI_BRANCH_NAMEBranch name${{ github.ref_name }}

Find IDs in BrowserStack Code Quality:

  • Project Settings shows Project ID
  • Repository Settings shows Repository ID

Verification

View Logs

  1. Go to Actions tab in your GitHub repository
  2. Click the workflow run
  3. Under Jobs, click embold-scan
  4. View Run BrowserStack Code Quality scan step for output:
[INFO] Connecting to https://your-bscq-instance.com
[INFO] Scanning repository: main-app
[INFO] Analyzing 1,245 files
[INFO] Detected 23 issues
[INFO] Quality score: 3.2/5.0
[INFO] Critical issues: 0
[OK] Quality gate passed

Check Status Checks

  1. On your Pull Request, scroll to Checks section
  2. Verify BrowserStack Code Quality Scan passes or shows gate details
  3. Failing gate displays:
    • Reason for failure (e.g., "Quality Score 2.1 < 2.5")
    • Number of issues introduced

Troubleshooting

Authentication Failed

  • Verify BSCQ_TOKEN is correct in GitHub Secrets
  • Token expires after 90 days; regenerate if needed

Docker Image Pull Failed

  • Check internet connectivity in runner
  • Verify Docker registry access (may need proxy configuration)

Gate Check Failed in PR

  • View the gate-check step output for threshold violations
  • Configure gates in Project Settings > Quality Gates

See Also