LogoLogo
🚀 Run Maestro tests in the cloud →
  • Home
  • Star us on GitHub
  • Getting Started
    • What is Maestro?
    • Installing Maestro
      • macOS
      • Windows
      • Linux
    • Build and Install your App
      • Android
      • iOS
    • Run a Sample Flow
    • Writing Your First Flow
    • Maestro Studio
    • Running Flows on CI
  • Cloud
    • Run Maestro tests in the cloud
    • Cloud Quickstart
    • CI Integration
      • GitHub Actions
        • Maestro GitHub Action for Android
        • Maestro GitHub Action for iOS
        • Maestro GitHub Action for Flutter
      • Bitrise
      • Bitbucket Pipelines
      • CircleCI
      • Integration with any CI platform
    • Pull Request Integration
    • Cloud Reference
      • Build your app for the cloud
      • Configuring OS Version
      • Configuring device locale
      • Device timezones
      • Email Notifications
      • Slack Notifications
      • Webhook Integration
      • Managing Secrets
      • Limits
      • Reusing App Binary
      • IP Allowlist
      • System Status
  • Platform Support
    • Supported Platforms
    • Android - Views
    • Android - Jetpack Compose
    • iOS - UIKit
    • iOS - SwiftUI
    • React Native
    • Flutter
    • Web Views
    • Web (Desktop Browser)
  • Examples
    • Android contacts flow automation
    • Facebook signup flow automation
    • Advanced: Wikipedia Android
    • Page Object Model
  • CLI
    • Cloud
    • Test Suites & Reports
    • Tags
    • Record Your Flow
    • Continuous Mode
    • View Hierarchy
    • Start Device
  • API Reference
    • Commands
      • addMedia
      • assertVisible
      • assertNotVisible
      • assertTrue
      • assertWithAI
      • assertNoDefectsWithAi
      • back
      • clearKeychain
      • clearState
      • copyTextFrom
      • evalScript
      • eraseText
      • extendedWaitUntil
      • extractTextWithAI
      • hideKeyboard
      • inputText
      • killApp
      • launchApp
      • openLink
      • pressKey
      • pasteText
      • repeat
      • retry
      • runFlow
      • runScript
      • scroll
      • scrollUntilVisible
      • setAirplaneMode
      • setLocation
      • startRecording
      • stopApp
      • stopRecording
      • swipe
      • takeScreenshot
      • toggleAirplaneMode
      • tapOn
      • doubleTapOn
      • longPressOn
      • travel
      • waitForAnimationToEnd
    • Common command arguments
    • Selectors
    • Configuration
      • Workspace configuration
      • Flow configuration
      • AI configuration
  • Advanced
    • Nested Flows
    • Wait
    • Loops
    • Conditions
    • Parameters & Constants
    • JavaScript
      • Run JavaScript
      • Outputs
      • Logging
      • Access element text
      • Make HTTP requests
      • GraalJS support
      • JavaScript announcement blog
    • Specify a Device
    • Configure Permissions
    • Detect Maestro in your app
    • Configure Maestro driver timeout
    • onFlowStart / onFlowComplete hooks
    • Test in different locales
    • Structuring your test suite
  • Troubleshooting
    • Known Issues
    • Frequently Asked Questions
    • Bug Report
    • Rollback Maestro
    • Debug Output
    • HOWTOs
      • Arrange your repository for Maestro tests
      • scrollUntilVisible for fragments
  • Community
    • Contributions
    • Articles & Tutorials
    • Case Studies
    • Resources
Powered by GitBook

Read to wire into CI or scale up your testing?

  • Run Maestro tests in the cloud →
On this page
  • 1. Trigger uploads on every pull request
  • 2. Grant access to pull requests
  • 3. Test the integration

Was this helpful?

Edit on GitHub
  1. Cloud

Pull Request Integration

PreviousIntegration with any CI platformNextCloud Reference

Last updated 3 months ago

Was this helpful?

🚀 Cloud Plan required - get started for free at

Maestro also provides support for native pull request integration. This is useful if you'd like to run your Flows asynchronously but still block pull requests from landing if flow failures are detected.

Maestro Cloud currently supports Pull Request Integration for GitHub and GitHub Enterprise only.

  • ✅ GitHub Support

  • ✅ GitHub Enterprise Support

Note that you can trigger .

1. Trigger uploads on every pull request

  1. Follow the steps described

  2. Ensure your workflow is triggered on every pull request made against your Baseline Branch.

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  1. Ensure that uploads to Maestro Cloud are triggered on every pull request. Exactly how this is accomplished depends on your CI setup.

  2. Add the following options to your maestro cloud command:

maestro cloud \
  --async \
  --apiKey <apiKey> \
  --branch <branch> \
  --repoOwner <repoOwner> \
  --repoName <repoName> \
  --pullRequestId <pullRequestId> \
  --commitSha <commitSha> \
  <appFile> .maestro/

branch

Set to the name of the git branch the app was built on and the pull request is based on (i.e. feature-foo)

repoOwner

Set to the owner of the repository (i.e. "mobile-dev-inc")

repoName

Set to the name of the repository (i.e. "fenix")

pullRequestId

Set to the unique identifier of the pull request. Only set when triggered by a Pull Request. (i.e. 1234)

commitSha

Set to the commit hash. Only set when triggered by a Pull Request. (i.e. 586e1c690891d20568976c78f06fbec9b94a3b32)

  1. Ensure that uploads are triggered on every pull request. Exactly how this is accomplished depends on your CI setup.

  2. Add the following values to the JSON data in the upload API request:

repoOwner

Set to the owner of the repository (i.e. "mobile-dev-inc")

repoName

Set to the name of the repository (i.e. "fenix")

branch

Set to the name of the git branch the app was built on and the pull request is based on (i.e. feature-foo)

pullRequestId

Set to the unique identifier of the pull request. Only set when triggered by a pull request. (i.e. 1234)

commitSha

Set to the commit hash. Only set when triggered by a Pull Request. (i.e. 586e1c690891d20568976c78f06fbec9b94a3b32)

2. Grant access to pull requests

In order to update the status of pull requests, you'll need to grant Maestro permissions to do so.

3. Test the integration

Lastly, open a pull request and ensure that the Maestro Cloud check shows up on your pull request.

maestro.dev
automatic uploads from any CI platform
Install the Maestro Cloud GitHub App
here
Successful check on Github PR page