Skip to main content
Run your agent’s simulations in Azure Pipelines and block pull requests that drop below your minimum pass rate. There are two ways to set it up. Use the Bluejay extension if your organization can install Marketplace extensions. Otherwise, use the plain YAML step, which needs nothing installed.

Prerequisites

  1. A Bluejay API key. Create one in the app under Settings > Integrations > CI/CD, or on the Developers page.
  2. An agent connected to your assistant.
  3. A simulation on that agent, with the Digital Humans you want to run.
The CI/CD tab also builds the YAML below for the simulation and minimum you pick.

Use the Bluejay extension

1

Install the extension

Search for Bluejay in the Visual Studio Marketplace and install it in your organization. Installing needs a Project Collection Administrator. Anyone else can request it, and the administrator gets an email to approve it.
2

Add a Bluejay service connection

In your project, go to Project settings > Service connections > New service connection > Bluejay. Paste your API key, name the connection Bluejay, and save.The first pipeline run that uses the connection stops with “This pipeline needs permission to access a resource”. Select Permit once. To skip this, grant the pipeline access in the connection’s Security settings.
3

Add the task to your pipeline

Add the task to azure-pipelines.yml. In the classic editor, Simulation lists the simulations the key can see.
4

Require it on pull requests

For Azure Repos, go to Repos > Branches, open the branch policies of main, and add the pipeline under Build validation as Required. A pull request then can’t complete until the simulation passes.For GitHub repos built in Azure Pipelines, the pr: trigger runs it, and you make it required with GitHub branch protection.
After the run, the pipeline’s Extensions tab shows the pass rate and a link to the run in Bluejay.

Use a plain YAML step

This step does the same with curl and jq, which Microsoft-hosted Ubuntu agents already have. Add your API key as a secret pipeline variable named BLUEJAY_API_KEY. Secret variables are not passed to scripts automatically, so the step maps it with env:.
It fails the step when the run does not complete, when the pass rate is below BLUEJAY_MIN_SCORE, or after 25 minutes. Set BLUEJAY_TIMEOUT_SECONDS to change the wait.

Inputs

Outputs

The task sets these output variables. Give the step a name: to read them in later steps, for example $(bluejay.score).

Pipeline details on the run

Both options send the pipeline’s repository, commit, branch, pull request and a link back to the pipeline run with the queued run. The CI/CD tab in Settings > Integrations lists the latest runs started from a pipeline, with their pass rate and both links.
Last modified on October 31, 2026