Skip to main content
Run simulations from Azure DevOps. Connect it in the app to gate pull requests with no pipeline change, or add Bluejay as a pipeline step.

Connect Azure DevOps

1

Create a personal access token

In Azure DevOps, open User settings > Personal access tokens and create a token for your organization with these scopes: Code (Read), Code (Status), Project and Team (Read) and Service Hooks (Read & write). The token owner needs permission to edit service hook subscriptions in the project.
2

Connect

Go to Settings > Developers > Integrations, open the CI/CD tab, select Azure DevOps, click Connect, and enter your organization and the token.
3

Add a trigger

Open a simulation, click CI/CD, and add a trigger with a repository, a target branch such as main, and a minimum score.
4

Require it on pull requests

Bluejay runs the simulation on every pull request into that branch and posts the score as the bluejay/simulation status. It passes when the score is at least the trigger’s minimum score. In Repos > Branches > Branch policies > Status checks, add that status and set it to required.
Each run uses credits.

Run Bluejay in a pipeline

Use the Bluejay extension if your organization can install Marketplace extensions, or the plain YAML step, which needs nothing installed.

Prerequisites

  1. A Bluejay API key, from the Developers page.
  2. An agent connected to your assistant.
  3. A simulation on that agent, with the Digital Humans you want to run.

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 November 13, 2026