Skip to main content
Configure Raigal to evaluate pull requests in CI, enforce quality gates, and report live metrics to your dashboard at app.raigal.dev. Running raigal init automatically detects your repository’s CI provider and scaffolds your workflow file without guesswork.

Environment variables

Provide these variables in your CI runner environment: Note: In GitHub Actions jobs configured with permissions: id-token: write, static tokens can be omitted because Raigal validates the runner using zero-token cryptographic GitHub OIDC directly. Configuring RAIGAL_TOKEN as a repository secret is still recommended for multi-platform consistency.

GitHub Actions

1. Hardened pull request check

Create .github/workflows/raigal.yml to evaluate pull requests, report results to your dashboard, and optionally generate SARIF annotations:
Uploading SARIF reports to GitHub Code Scanning on private repositories requires GitHub Advanced Security (GHAS) enabled on your GitHub enterprise account. On public repositories, GitHub Code Scanning is provided at no additional cost by GitHub.

2. Pull request close and merge sync

If you use the official Raigal GitHub App, this step is unnecessary. The app receives pull_request.closed webhook events directly from GitHub and updates your remediation board automatically.
For standalone CI environments without the GitHub App, synchronize card status when pull requests merge or close:

GitLab CI

In .gitlab-ci.yml (auto-generated by raigal init):
Configure RAIGAL_TOKEN in GitLab under Settings > CI/CD > Variables.

Bitbucket Pipelines

In bitbucket-pipelines.yml (auto-generated by raigal init):
Configure RAIGAL_TOKEN in Bitbucket under Repository settings > Repository variables.

Quality gate exit codes and thresholds

In all CI providers, raigal ci behaves deterministically:
  • Exit code 0 (Pass): The overall repository score is at or above ci.failBelow (default: 70), and zero error-severity findings are present.
  • Exit code 1 (Block): The score dropped below ci.failBelow, or one or more error-severity findings (security risks, syntax errors, or prompt injections) were detected.
  • Exit code 2 (Licensing lapse): Occurs only if licensing.onLapse is configured as "fail-closed" and offline lease verification has expired without network access.