GitHub Actions quickstart

Run Abizor on one pull request in CI.

Add one GitHub Actions workflow, open a pull request, and let Abizor preserve the change state behind the PR before merge: intent, diff, local verification, checks, readiness, event log, and next step.

Input existing pull request
Runs in your GitHub Actions runner
Canonical record Abizor event log
Delivery boundary no create, no merge

What this proves

A self-serve control-loop proof for one PR.

This is the shortest current path to see Abizor work without a hosted app. It runs inside GitHub Actions, reads the existing PR diff, runs your configured verification command, reads GitHub check state, and writes a replayable event log.

It does not create the PR, merge the PR, deploy code, use a GitHub App, or send your repository through a hosted Abizor runtime. The hosted GitHub App path is a future surface over the same kernel, not the current quickstart.

What the workflow checks

Abizor checks the AI change process around the PR.

PR diff

Reads the current branch against the base ref instead of relying on chat memory.

Verification receipt

Runs the command you choose in your GitHub Actions runner and records the result.

Check state

Reads the existing PR checks before readiness, without creating or merging anything.

Replayable output

Uploads an event log, summary, PR comment body, and artifact manifest.

Command shape

The core step is one CI proof command.

The full workflow includes checkout, base-ref fetch, Python setup, installation, artifact upload, and optional guarded PR comment posting. The core Abizor command looks like this.

abizor ci-proof \
  --event-log "$RUNNER_TEMP/abizor-events.json" \
  --checkout-path "$GITHUB_WORKSPACE" \
  --intent "verify this pull request before merge" \
  --diff-base "origin/$GITHUB_BASE_REF" \
  --verification-command "python3 -m unittest discover" \
  --github-command "gh" \
  --summary-file "$RUNNER_TEMP/abizor-summary.md" \
  --comment-file "$RUNNER_TEMP/abizor-pr-comment.md" \
  --manifest-file "$RUNNER_TEMP/abizor-artifacts.json"

Required checkout shape

Use a named PR head branch, not a detached checkout.

Abizor needs a branch identity so it can adopt the existing pull request instead of guessing. The workflow should check out the PR head branch and fetch the base ref explicitly.

- uses: actions/checkout@v6
  with:
    fetch-depth: 0
    ref: ${{ github.head_ref }}

- run: git fetch origin "$GITHUB_BASE_REF:refs/remotes/origin/$GITHUB_BASE_REF"
Open the full workflow

What you get

Human output plus a replayable state record.

01

Event log

The canonical Abizor run record for replay and debugging.

02

Actions summary

A readable CI summary with status, evidence, and next step.

03

Comment body

A generated Markdown PR comment projection you can post explicitly.

04

Manifest

A machine-readable list of artifacts and projected next step.

Current access boundary

Self-serve flow first. Public package distribution later.

The current quickstart uses repository access during installation because public package distribution is not live yet. If access is not automated for you, email for access. No sales call is required.

Hosted app, hosted API, billing, dashboard, GitHub App installation, merge automation, and hosted test execution are not part of this quickstart.

Safe boundary

The event log is truth. GitHub output is projection.

AllowedRead existing PR metadata, read checks, run your configured verification command in your CI runner, upload artifacts, and optionally post the generated comment projection.
Not allowedCreate PRs, merge PRs, deploy code, run customer shell commands on Abizor infrastructure, or treat a GitHub comment as canonical state.
CanonicalThe Abizor event log and run record. Summaries, manifests, checks, and comments are projections over that record.

Run the proof on one ordinary PR.

Use the full workflow, inspect the artifacts, and email support if access is blocked.

Open full quickstart Email support