@qawolf/ci-sdk provides a TypeScript SDK (CJS and ESM compatible) for interacting with the QA Wolf API from your CI pipeline.
Installation
Requires Node.js 18 or later.
makeQaWolfSdk
The entry point for all SDK functions. Pass yourQAWOLF_API_KEY to initialize.
SDK functions do not throw. They return a result object with an
outcome field. Always inspect the outcome to determine whether your CI step should pass or fail.attemptNotifyDeploy
Notifies QA Wolf of a successful deployment, which starts a test run if one is configured. See webhooks/deploy_success for the underlying endpoint.DeployConfig fields
Result fields
A run is only created if there is a matching trigger in your QA Wolf configuration.
outcome: "success" means the notification was accepted, not that a run was created. Check runId to know whether a run was created.pollCiGreenlightStatus
Polls the CI greenlight endpoint until the run completes and returns whether it is safe to release.Options
Result fields
Advanced: makePollCiGreenlightStatusIterator
An async generator for fine-grained control over the polling lifecycle. Use this when you need custom early-exit logic — for example, proceeding after a time limit or when bug counts are within an acceptable threshold.notifyTerminatedEphemeralEnvironment
Notifies QA Wolf that an ephemeral environment has been terminated. Stops all runs targeting the environment and triggers flow promotion. See webhooks/environment_terminated for the underlying endpoint.Input fields
Pass one of the following to identify the environment:Result fields
generateSignedUrlForRunInputsExecutablesStorage
Generates a signed URL for uploading a run input executable (APK, AAB, IPA, ZIP, CSV, PDF) to QA Wolf. See v0/run-inputs-executables-signed-urls for the underlying endpoint.Input fields
Response fields
Versioning
This package follows SemVer. Notes:- Use the
^range operator — patch and minor updates will not introduce breaking changes. - Major version bumps indicate a breaking API change. QA Wolf will give advance notice.
- Only top-level exports are covered by SemVer.
- New fields in API response types are not considered breaking changes.