Skip to main content

Overview

The GitHub integration provides:
  • Repository linking - Connect repos to track commits and branches
  • Build tracking - Associate builds with specific commits and branches
  • CI/CD automation - Trigger tests on pull requests, pushes, and merges
  • Status reporting - Post test results directly to GitHub PRs
GitHub Integration tab

Setup Guide

Prerequisites

  • A GitHub account with access to an organization or personal repos
  • Admin or write access to repositories you want to test
  • Owner/Admin permissions in the GitHub organization (for OAuth app installation)

Step 1: Connect Your GitHub Organization

  1. Navigate to Integrations in the Revyl sidebar
  2. The GitHub Organizations tab is selected by default
  3. Click Connect GitHub Organization
  4. You’ll be redirected to GitHub’s authorization page
  5. Select the organization (or use your personal account)
  6. Choose which repositories to grant access:
    • All repositories (current and future)
    • Only select repositories (pick specific repos)
  7. Click Install & Authorize
  8. You’ll be redirected back to Revyl with a success message
GitHub Organizations connection page

Step 2: Configure a Repository

After connecting your GitHub organization, configure CI/CD for specific repositories:
  1. Click Add Repository in the Repository Configuration section
  2. The configuration popup appears with these options:
Repository Configuration Popup Repository Configuration Options:
FieldDescription
RepositorySelect a repo from your connected GitHub organization
Enable IntegrationToggle to enable/disable CI/CD for this repo
Build PathsMap directory paths to Revyl builds (for monorepos)
WorkflowsSelect which Revyl workflows to run
Trigger EventsChoose when to trigger tests (see below)
Trigger Events:
  • On Pull Request Open - Run tests when a PR is created
  • On Pull Request Update - Run tests when a PR is updated
  • Manual Trigger - Enable @revyl bot commands in PR comments
For monorepos, add multiple build paths to map different app directories to their respective builds.

Step 3: Enable Manual Trigger (Optional)

Manual Trigger enables the @revyl GitHub bot in your repository. When enabled, you can mention @revyl in PR comments to trigger tests on demand. To enable:
  1. Open the repository configuration
  2. Check the Manual Trigger checkbox under Trigger Events
  3. Click Create Configuration or Update Configuration
Once enabled, you can use @revyl commands in any PR on that repository. See @revyl bot commands →

What Can You Do With GitHub Integration?

1. Commit-Based Build Tracking

When you upload a build through Revyl, you can associate it with a commit:
  • Branch name - e.g., main, develop, feature/login
  • Commit SHA - e.g., abc1234
  • Build metadata - Revyl tracks which builds came from which commits
Benefits:
  • Trace bugs to specific commits
  • Know exactly which code version is being tested
  • See build history correlated with Git history

2. Pull Request Testing

Automatically test every pull request:
  1. Developer opens a PR
  2. GitHub Actions workflow triggers
  3. Revyl runs the test suite on the PR’s build
  4. Results are posted as a commit status on the PR
  5. Team sees pass/fail status before merging
PR Status Examples:
  • Revyl Tests: All tests passed (12/12)
  • Revyl Tests: 2 tests failed (10/12)
  • Revyl Tests: Running...

3. Branch-Specific Workflows

Run different tests on different branches:
  • Main branch: Full regression suite (all tests)
  • Develop branch: Smoke tests (critical paths only)
  • Feature branches: Relevant feature tests
Configure this in your GitHub Actions workflow with conditional logic.

4. CI/CD Pipeline Integration

Integrate Revyl into your existing CI/CD pipeline:
# .github/workflows/test.yml
name: Test on Pull Request

on:
  pull_request:
    branches: [main, develop]

jobs:
  revyl-test:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Revyl Test
        env:
          REVYL_API_KEY: ${{ secrets.REVYL_API_KEY }}
          REVYL_WORKFLOW_ID: ${{ secrets.REVYL_WORKFLOW_ID }}
        run: |
          curl -X POST https://api.revyl.ai/v1/workflows/$REVYL_WORKFLOW_ID/run \
            -H "Authorization: Bearer $REVYL_API_KEY"
Full CI/CD documentation →

PR Comment Commands

Trigger Revyl tests directly from GitHub PR comments using @revyl commands.

Available Commands

CommandDescription
@revylShow help with available options
@revyl config runRun tests using saved CI/CD configuration
@revyl config run ios:URL android:URLRun with specific Expo build URLs
@revyl run workflowsRun saved workflows (no build step)
@revyl run workflows 1,2Run specific workflows by number

Command Examples

Show help:
@revyl
Run with saved config:
@revyl config run
Run with Expo build URLs:
@revyl config run ios:https://expo.dev/artifacts/... android:https://expo.dev/artifacts/...
Run specific workflows:
@revyl run workflows 1,2,3
Commands only work on repositories connected to Revyl with CI/CD configured.

PR Open Trigger Behavior

When On Pull Request Open is enabled, Revyl automatically analyzes your PR to determine if new builds are needed.

How It Works

  1. PR is opened on a connected repository
  2. Revyl checks the diff - Compares changed files against configured build paths
  3. Decision is made:
If NO changes in build path:
  • Uses existing builds already in Revyl
  • Runs configured workflows automatically
  • No user action needed
If changes ARE detected in build path:
  • Shows a help message in the PR
  • Prompts you to provide new build URLs
  • Waits for you to run @revyl config run ios:URL android:URL

Example Flow

PR opened with changes to:
├── apps/expo-demo/src/App.tsx    ← In build path
├── apps/expo-demo/package.json   ← In build path
└── README.md                      ← Not in build path

Result: Build path changed → Revyl comments asking for new build URLs
PR opened with changes to:
├── docs/README.md                 ← Not in build path
└── scripts/deploy.sh              ← Not in build path

Result: No build changes → Runs tests with existing builds automatically
This smart detection prevents running tests against outdated builds when your app code changes.

Managing GitHub Integration

Viewing Connected Organizations

To see which GitHub organizations are connected:
  1. Go to IntegrationsGitHub Organizations
  2. If connected, you’ll see organization details (name, avatar)
  3. You’ll see a list of repositories you’ve granted access to

Adding More Repositories

To grant Revyl access to additional repositories:
  1. Go to IntegrationsGitHub Organizations
  2. Click Manage Repositories (if available) or Configure on GitHub
  3. You’ll be taken to GitHub’s app settings
  4. Select additional repositories
  5. Click Save
  6. Return to Revyl - new repos will appear in the CI/CD Integration dropdown

Removing Repository Access

To revoke access to specific repositories:
  1. Go to your GitHub organization’s SettingsInstalled GitHub Apps
  2. Find Revyl in the list
  3. Click Configure
  4. Deselect repositories you want to remove
  5. Click Save

Disconnecting GitHub

To completely disconnect GitHub from Revyl: Option 1: From Revyl
  1. Go to IntegrationsGitHub Organizations
  2. Click Disconnect GitHub (if available)
  3. Confirm disconnection
Option 2: From GitHub
  1. Go to your GitHub organization’s SettingsInstalled GitHub Apps
  2. Find Revyl and click Configure
  3. Scroll down and click Uninstall

Permissions & Security

What Permissions Does Revyl Request?

Revyl asks for the following GitHub permissions:
PermissionAccess LevelWhy We Need It
Repository contentsReadTo fetch commit information and branch names
Commit statusesWriteTo post test results to PRs and commits
MetadataReadTo list repositories and organizations
WebhooksRead & WriteTo receive notifications when code is pushed

What Can Revyl NOT Do?

Revyl cannot:
  • Modify your code or files
  • Push commits
  • Merge pull requests
  • Access private information beyond repositories
  • Delete branches or repositories

Data Privacy

Revyl only accesses:
  • Commit SHAs and messages
  • Branch names
  • Pull request metadata (title, number, status)
We never access or store:
  • Source code contents
  • Credentials or secrets
  • Personal developer information

Troubleshooting

”No repositories found” in CI/CD Integration

Cause: GitHub organization isn’t connected, or no repositories were granted access. Solution:
  1. Go to GitHub Organizations tab
  2. Verify connection status shows “Connected”
  3. If connected, click Configure to manage repository access on GitHub
  4. Grant access to at least one repository

GitHub Action Not Triggering Tests

Check these:
  1. API Key is correct
    • Verify REVYL_API_KEY secret is set in GitHub repo settings
    • Generate a new API key in Revyl if needed (Settings → API Keys)
  2. Workflow ID is correct
    • Double-check the workflow ID in your GitHub Action matches the one in Revyl
  3. Workflow is triggered correctly
    • Verify the GitHub Action is running (check Actions tab)
    • Check logs for errors in the curl request
More CI/CD troubleshooting →

Commit Status Not Appearing on PR

Possible causes:
  1. Revyl doesn’t have permission
    • Verify “Commit statuses” permission is granted (re-install app if needed)
  2. Wrong repository linked
    • Check that the correct repo is selected in CI/CD Integration tab
  3. Test hasn’t completed yet
    • Commit status only appears after test finishes
    • Check Revyl test history to see if test ran

Re-authorizing GitHub

If you encounter authorization errors:
  1. Go to IntegrationsGitHub Organizations
  2. Click Disconnect GitHub
  3. Click Connect GitHub Organization again
  4. Re-authorize and select repositories

Best Practices

Repository Organization

Monorepo: If using a monorepo, create separate workflows for different apps:
  • Workflow 1: android-app-tests (tests Android build)
  • Workflow 2: ios-app-tests (tests iOS build)
Multi-repo: Link each repository individually and configure per-repo workflows.

Branching Strategy

Use branch-specific testing:
  • main / master: Full test suite before merging
  • develop / staging: Smoke tests for quick feedback
  • Feature branches: Tests related to the feature

Commit Messages

Include test references in commit messages:
feat: Add login screen (#123)

Tested with Revyl workflow: login-flow-test

Protected Branches

Configure GitHub branch protection:
  1. Go to repo SettingsBranches
  2. Add rule for main branch
  3. Enable: Require status checks to pass before merging
  4. Select: Revyl Tests
This prevents merging PRs with failing tests.

Next Steps


Need help? Contact [email protected]