Quickstart

Run a real HTTP case against a live API in a few minutes. No credentials, no account.

Terminal recording of a passing flag-proof run

1. Get the CLI

Two ways to run it. With the .NET 8 SDK:

clone and build
git clone https://github.com/ernestoalejowitt22/ReleaseTwin
cd ReleaseTwin
dotnet build ReleaseTwin.sln

Or via the published container image — no .NET SDK required:

docker
docker pull ghcr.io/ernestoalejowitt22/releasetwin/cli:0.1.0

2. Run the bundled HTTP example

It makes a real HTTP call to a public test API and runs two real JSONPath assertions — against the live internet, no fake handler, no setup.

from source
dotnet run --project src/ReleaseTwin.Cli -- examples/cases
or with docker
docker run --rm -v $(pwd)/examples:/workspace:ro \
  ghcr.io/ernestoalejowitt22/releasetwin/cli:0.1.0

Output:

FAIL CLM-042 (Infrastructure): missing-capability:http:azure-devops
FLAGPROOF FLAGPROOF-DEMO-1 (Ineligible): no installed adapter exposes feature-state control
PASS HTTP-DEMO-1
1 passed, 2 failed

HTTP-DEMO-1 passed against the live API. The other two need Azure DevOps credentials and report as failing rather than crashing — a non-zero exit code is safe to wire straight into CI (... || exit 1).

3. Write a case against your own API

No new adapter code needed — http.request and http.assertJsonPath test any REST API from case-file data alone. Put this in cases/my-case.yaml:

cases/my-case.yaml
id: MY-CASE-1
oracle:
  locator: tickets/MY-CASE-1
fixture:
  locator: my-fixture.json       # resolved next to cases/, in a fixtures/ directory
  sha256: <sha256 of the fixture file>
pipeline:
  - operation: http.request
    with:
      method: POST
      url: ${API_BASE_URL}/orders     # ${ENV_VAR} resolved at load time — never commit secrets
      headers:
        Authorization: Bearer ${API_TOKEN}
      body:
        productId: 123
  - operation: http.assertJsonPath
    with:
      path: $.status
      expected: confirmed
  • ${ENV_VAR} references are resolved when the case loads — keep URLs, tokens, and secrets in the environment, not the file.
  • The fixture is resolved locally by whatever machine runs the CLI and verified by hash before the pipeline runs.

Next

  • Case files — every block a case can declare, including flag proof.
  • Hosted platform — upload run history and turn on the evidence viewer.