Skip to main content

Moatgator documentation

Moatgator protects mobile apps at runtime and from your CI: you add it with a pull request, describe your policy in a moatgator.yml file, and every release build is registered, scanned and (when the protection engine is available) protected, with no SDK to integrate.

Current state (October 2026)

Read this before you plan around Moatgator. We keep it here, in one place, so the rest of the docs can stay clean.

PieceState
Public API v1, build registry, static Scan (APK, AAB, IPA)Built and tested. Not deployed to a public domain yet.
moatgator CLI, GitHub Action, GitHub AppBuilt and tested against local test servers. Not published to npm, the Marketplace or GitHub yet.
Protection engine (Shield, Runtime checks, Attest, Pulse)Preview. protect registers the build and uploads the package, but no protected package is produced yet. The API answers engine: preview, and --require-protected fails your job on purpose until that changes.

This page, and the limits and guarantees page, are updated when any row changes.

How it fits together​

  1. moatgator.yml lives in your repository. It names your app and says how each detection should respond: monitor, warn, block or terminate. A new detection never blocks anything unless you ask. Reference
  2. Your CI calls the CLI or the GitHub Action after the build. In GitHub Actions the job authenticates with OIDC, so there is no long-lived key in your secrets. CI guides
  3. The GitHub App (optional) detects your platform, opens one pull request with a starter moatgator.yml in monitor mode, and adds a check to pull requests that change it.
  4. The console shows builds, scan grades and the policy history.

Start here​