> For the complete documentation index, see [llms.txt](https://docs.sealsecurity.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sealsecurity.io/setup-apps-os/cli-in-cicd/azure-devops.md).

# Integrating with Azure DevOps Pipelines

Azure DevOps integration is a script-step pattern: install the CLI, run `seal fix`.

## Before you start

* A [token](/getting-started/tokens.md) saved as a pipeline variable, marked secret (refer to as `$(SEAL_TOKEN)` in YAML).
* A [Project ID](/getting-started/creating-a-seal-project.md#project-id-and-project-name) for the activity.

## The step

```yaml
- bash: |
    curl -fsSL https://github.com/seal-community/cli/releases/download/latest/seal-linux-amd64-latest.zip -o seal.zip
    unzip seal.zip && chmod +x seal
    export SEAL_TOKEN=$(SEAL_TOKEN)
    export SEAL_PROJECT=my-project-id
    ./seal fix --mode all
  displayName: Run Seal CLI
```

Replace `--mode all` with `--mode remote` or `--mode local` per your [deployment method](/setup-apps-os/choosing-deployment-method.md). The step should run after dependencies are installed and before they are packaged.

Pipeline variables marked secret are not exposed to the shell environment by default; the explicit `export SEAL_TOKEN=$(SEAL_TOKEN)` makes the token available to the CLI. If the agent's base image lacks `curl` or `unzip`, install them first.

## Related

* [Installing the Seal CLI](/setup-apps-os/cli-in-cicd/installing-the-cli.md).
* [The CLI fix mode](/setup-apps-os/cli-in-cicd/cli-fix-mode.md).
