AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Know before you deploy. Integration testing for microservices, without the test environment.
Developer toolsGo · ShellGitHub @bidirektOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
CLI for the Bidirekt broker
Taken from the repository README
Loading the full README.
Read the full README ↗bidirekt is the command line for the Bidirekt broker. In Bidirekt, each side of an integration declares in a contract file what it provides and what it consumes. The CLI publishes these contracts to the broker, asks it with can-i-deploy whether a version can be deployed to an environment without breaking a consumer or a provider deployed there, and records each deployment. The broker compares the contracts, so no service has to be running for the check.
curl -sSfL https://raw.githubusercontent.com/bidirekt/cli/main/install.sh | sh
Each release is also on https://github.com/bidirekt/cli/releases, as one archive per system.
The CLI also ships as the Docker image ghcr.io/bidirekt/cli.
All install options: https://bidirekt.com/docs/start/install/
Point the CLI at your broker, then create the environment and the participant once:
export BIDIREKT_BROKER_URL=http://localhost:8080
bidirekt create-environment production
bidirekt create-participant petstore_web
For every version, publish its contract files, ask whether it can be deployed, deploy it, and record the deployment:
bidirekt publish contracts/*.yaml --participant petstore_web --version 2.3.0
bidirekt can-i-deploy petstore_web --version 2.3.0 --environment production
# deploy petstore_web 2.3.0 to production
bidirekt record-deployment petstore_web --version 2.3.0 --environment production
Read CONTRIBUTING.md before opening an issue or a pull request.
git config core.hooksPath .githooks
The pre-push hook runs the Go gates of CI (gofmt, go vet, golangci-lint, go-arch-lint, go test, govulncheck) before every push.
The end-to-end suite in tests/e2e runs the CLI against a released broker image, ghcr.io/bidirekt/broker:0.1.0. It needs Docker, bats, bats-support, bats-assert and gettext (for envsubst).
On macOS, Homebrew installs bats and gettext but has no bats-support or bats-assert, so clone those at the versions CI uses into one folder and point BATS_LIB_PATH at it:
brew install bats-core gettext
git clone --depth 1 -b v0.3.0 https://github.com/bats-core/bats-support "$HOME/.local/lib/bats/bats-support"
git clone --depth 1 -b v2.1.0 https://github.com/bats-core/bats-assert "$HOME/.local/lib/bats/bats-assert"
export BATS_LIB_PATH="$HOME/.local/lib/bats"
The suite runs the bidirekt it finds on PATH and never builds it. Build the working tree into the repository root, where /bidirekt is gitignored, and put the root first on PATH:
go build -o bidirekt ./cmd/bidirekt
export PATH="$PWD:$PATH"
Start the broker and its Postgres, then run the suite:
docker compose -f tests/e2e/compose.yaml up -d --wait
BIDIREKT_BROKER_URL=http://localhost:8080 bats tests/e2e
Before the first test, the suite checks that the broker at BIDIREKT_BROKER_URL is the version pinned in tests/e2e/compose.yaml, and runs no test if it isn't.
Each run uses its own participant and environment names, so running the suite again against the same broker passes. docker compose -f tests/e2e/compose.yaml down stops both containers and throws the data away (Postgres keeps it on tmpfs).
Apache License 2.0 — use it, ship it, embed it in your pipelines freely.
The broker it talks to is source-available under BSL 1.1; see https://github.com/bidirekt/broker for its terms.