DevAssure's O2 Agent is Now Available on GitHub Marketplace
Every engineering team knows the tension. You ship fast, but testing can't keep up. Regression suites grow exponentially. Manual QA becomes a bottleneck. And somewhere between the PR and production, confidence starts to erode.
That's the problem we built O2 to solve. And today, we're making it even easier to adopt -
O2 is now available as a GitHub Action on the GitHub Marketplace.
What is O2?
O2 is DevAssure's invisible AI testing agent. It doesn't just run tests - it understands your code changes, reasons about what's affected, and acts on it.
Here's what happens when O2 enters your workflow:
- It reads the diff. O2 analyzes the code delta from a branch comparison or a specific commit.
- It maps the impact. Instead of guessing, O2 traces changes to the exact user journeys and components they affect.
- It discovers existing coverage. O2 checks what's already tested and identifies the gaps.
- It generates missing tests. New or updated flows get end-to-end test coverage automatically.
- It executes and archives. The full session runs autonomously, and results are zipped with session IDs for traceability.
No scripts to write. No suites to maintain. No manual triage.
Why a GitHub Action?
We've always believed that testing should live where code lives. O2 was already available through our CLI, VS Code extension, and as a Claude Skill. But CI/CD is where the rubber meets the road - it's where every team needs automated quality gates that actually work.
With the new GitHub Action, O2 plugs directly into your pipeline. You can trigger it on every push, every pull request, or on a schedule. The agent scopes its run to what actually changed, so you're not burning time on broad regression passes that test things nobody touched.
Here's what a basic workflow looks like:
- name: Run DevAssure O2
uses: devassure/devassure-action@v1
with:
head: feature/checkout-refactor
base: main
environment: staging
headless: true
That's it. O2 takes over from there.
The Problem With Traditional Test Automation in CI/CD
Most teams add testing into their pipelines as an afterthought. The typical setup looks something like this: a growing suite of Selenium or Cypress tests that run on every build, take 30-45 minutes, flake out regularly, and require constant maintenance as the UI evolves.
The result? Teams either skip tests to ship faster, or they slow down to babysit flaky pipelines. Neither option is good.
O2 approaches this differently. It doesn't maintain a static suite. It reasons about each change dynamically - understanding the blast radius, generating targeted tests, and adapting when the UI shifts. If a selector drifts or a flow changes, the agent adjusts in real time instead of failing with a cryptic error.
What Makes O2 Different
Change-aware, not suite-dependent
O2 doesn't run everything every time. It scopes execution to the impact radius of the actual code change. If you refactored the checkout flow, O2 tests checkout - not the settings page.
Plain English test definitions
You define behavior in natural language. O2 translates intent into executable test flows. Your QA team doesn't need to learn a framework or maintain page objects.
Self-healing execution
When the UI evolves, O2 adapts its execution path. No more broken tests because someone changed a button's class name.
Zero-config reporting
Results are automatically archived with session IDs. Plug them into your existing reporting tools or review them directly.
Who Is This For?
If your team ships frequently and struggles with any of the following, O2 was built for you:
- QA is a bottleneck. Your developers ship PRs faster than QA can validate them.
- Regression suites are unreliable. Flaky tests erode trust and slow down merges.
- Test maintenance is a tax. Every UI change means updating dozens of test scripts.
- You want CI/CD quality gates that actually catch things. Not just green checkmarks that give false confidence.
We've seen this work across teams of all sizes - from startups shipping daily to enterprises managing complex release trains. Companies like Nokia, Coverfox, Attentive, BankBazaar, and many others already trust DevAssure to power their QA workflows.
Getting Started
Getting O2 into your GitHub workflow takes minutes. Here's a step-by-step walkthrough.
Prerequisites
Before you begin, you'll need:
- A DevAssure account. You can sign up for a free trial at app.devassure.io/sign_up.
- A DevAssure auth token for CI/CD use. Once logged in, generate a token from DevAssure web portal.
- A GitHub repository with your application code.
- A DevAssure project initialized in your repo. If you haven't done this yet, install the CLI globally with
npm install -g @devassure/cli, then rundevassure initin your project root. This creates a.devassure/folder containing your app config, test data, preferences, and test cases.
Step 1: Store Your Token as a GitHub Secret
Your DevAssure auth token should never be hardcoded. Add it as a repository secret:
- Go to your GitHub repo -> Settings -> Secrets and variables -> Actions.
- Click New repository secret.
- Name it
DEVASSURE_TOKENand paste your token as the value.
Step 2: Create the Workflow File
In your repository, create a new file at .github/workflows/devassure.yml. Here's a workflow that runs O2 on every pull request:
name: DevAssure O2 Testing
on:
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref || github.ref_name }}
- uses: actions/setup-node@v4
with:
node-version: "24"
- name: Run DevAssure O2
uses: devassure/devassure-action@v1
env:
DEVASSURE_TOKEN: ${{ secrets.DEVASSURE_TOKEN }}
Let's break down what's happening:
fetch-depth: 0ensures the full git history is available so O2 can compute accurate diffs between branches.headandbasetell O2 which branches to compare. On a pull request,github.head_refautomatically resolves to the feature branch.environmentmaps to the environment key in your.devassure/test_data.yaml- this is where O2 picks up the target URL, credentials, and test data.headless: trueruns the browser in headless mode, which is what you want in CI.archivetells O2 to zip and save session results to a directory, which you can then upload as a build artifact.
Step 3: (Optional) Upload Test Reports as Artifacts
To make test reports downloadable from your GitHub Actions run, add a step after the O2 action:
- name: Upload test reports
if: always()
uses: actions/upload-artifact@v4
with:
name: devassure-reports
path: ./test-reports
Using if: always() ensures the reports are uploaded even if tests fail - which is exactly when you need them most.
Step 4: Test a Specific Commit (Alternative Trigger)
If you prefer to run O2 against a specific commit instead of a branch comparison, you can configure it like this:
- name: Run DevAssure O2 on commit
uses: devassure/devassure-action@v1
with:
token: ${{ secrets.DEVASSURE_TOKEN }}
commit: ${{ github.sha }}
environment: staging
headless: true
This is useful for post-merge validation on your main branch or for nightly runs against the latest commit.
Step 5: Push and Watch It Work
Commit your workflow file, open a pull request, and head to the Actions tab in your GitHub repo. You'll see O2 pick up the diff, map the impact, generate tests, and execute them - all within the run logs.
Beyond GitHub Actions
The GitHub Action is the fastest way to get O2 into your pipeline, but it's not the only option. You can also run O2 through:
- CLI:
devassure test --head feature/checkout --base main- great for local testing before you push. - VS Code Extension: Test a branch or commit directly from the editor's Tests view, without leaving your IDE.
- Claude Skill: Use O2 as part of an AI-assisted development workflow.
All paths lead to the same agent intelligence - pick whatever fits your team's workflow best.
What's Next
This GitHub Marketplace launch is a milestone, but it's just the beginning. We're continuing to deepen O2's reasoning capabilities, expand integration points, and make autonomous testing the default - not the exception.
If you've been looking for a way to make your CI/CD pipeline genuinely intelligent about quality, give O2 a try. We'd love to hear what you think.
Links
- GitHub Marketplace: https://github.com/marketplace/actions/devassure-action
- O2 Agent: https://www.devassure.io/o2-testing-agent
- DevAssure: https://www.devassure.io
- CLI: https://www.npmjs.com/package/@devassure/cli
