AegisRunner
Start free
All docs

Integrations

CI/CD Integration

Trigger scans and test runs from your CI/CD pipeline with a project trigger token. Set up under Manage → CI/CD.

Last updated: July 14, 2026

CI/CD Integration

Run AegisRunner as part of your pipeline. Under Manage → CI/CD, create a trigger token for the project.

Triggering from CI

POST to the trigger endpoint with your token to kick off a scan or a test run from GitHub Actions, GitLab CI, Jenkins, CircleCI — anywhere that can make an HTTP request. The run shows up in the Runs lens and Activity panel like any other.

The aegis CLI

Prefer a command line over raw HTTP? Install the aegis CLI (zero dependencies, Node 18+):

npm install -g @aegisrunner/cli

Then, with your trigger token in AEGIS_TOKEN:

# run everything, wait, and write a JUnit report for your CI
aegis run --format junit --output aegis-results/junit.xml

# run a smart selection on Firefox
aegis run --strategy smoke --browser firefox

# re-scan the site, or your mobile app, after a deploy
aegis scan --url https://staging.example.com
aegis mobile-scan --platform android --role customer

# re-scan and BLOCK on it — streams live crawl + test-generation progress,
# exits 0 when done (1 if it failed) so a CI step can wait for the new tests
aegis scan --url https://staging.example.com --watch

# scan pages behind a login (password from stdin — never on the command line)
printf %s "$STAGING_PW" | aegis scan --username qa@example.com --password-stdin --watch

Exit code 0 means everything passed, 1 means test failures (fails your pipeline step), 2 means the CLI could not complete. The JUnit file contains real per-case rows — point GitLab artifacts: reports: junit: or Jenkins at it.

Watch a scan live

By default aegis scan fires and returns — a CI token can’t poll scan status. Add —watch and the CLI streams the crawl and AI test-generation phases live (over Server-Sent Events) and blocks until it finishes: exit 0 when the scan completes, 1 if it failed. Use it when a pipeline step should wait for a fresh scan and its generated tests before moving on.

Scan behind a login

To test pages that require signing in, hand the scan a login and it authenticates during the crawl:

FlagWhat it does
—username <u>The login identity — email, username, phone, employee id, anything. The scanner’s AI maps it onto whatever the login form calls its identity field, so there’s nothing to configure per app.
—password-stdinReads the password from stdin — keeps it out of your shell history and ps. Set AEGIS_PASSWORD instead if you prefer an env var. A password is never accepted as a plain flag.
—role <name>Scan as a saved role (Admin / Buyer / …) — uses that role’s stored login, no —username/password needed, and tags the scan and its generated tests with the role.

Credentials passed this way are also saved to the project’s login, so authenticated test runs and later re-scans can sign in too. Works together with —watch, —tunnel, and —url.

Private, staging, or firewalled targets

Testing an app the cloud can’t reach — behind a VPN, on localhost, or on an IP-restricted staging box? The same CLI runs a self-hosted runner inside your network (outbound-only, no inbound port) and can open a temporary aegis tunnel to a local port. See Testing behind a firewall.

Results back to your pipeline

Pair triggers with webhook or issue-tracking integrations (GitHub Issues, Jira) so failures land where your team already works. Tokens are scoped per project and can be revoked anytime.