Platforms
Getting Started

Platforms

Ferret auto-detects the VCS platform from CI environment variables. No manual config needed.

PlatformAuto-detected env varToken env var
GitHubGITHUB_ACTIONS=trueGITHUB_TOKEN
GitLabGITLAB_CI=trueGITLAB_TOKEN
BitbucketBITBUCKET_BUILD_NUMBERBITBUCKET_TOKEN
Azure DevOpsTF_BUILD=trueAZURE_DEVOPS_TOKEN
GiteaGITEA_ACTIONS=trueGITEA_TOKEN

GitHub Actions

.github/workflows/ferret-review.yml
yaml
on:
pull_request:
types: [opened, synchronize]
jobs:
ferret-review:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: |
curl -L https://github.com/Arunachalamkalimuthu/merlin-ai-code-review/releases/latest/download/merlin-linux-amd64 -o ferret
chmod +x ferret && ./ferret review
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

Webhook bot mode (GitHub)

Allow PR commenters to trigger commands by mentioning @ferret.

.github/workflows/ferret-bot.yml
yaml
on:
issue_comment:
types: [created]
jobs:
ferret-bot:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
- run: ./ferret webhook --port 8080
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
FERRET_GITHUB_SECRET: ${{ secrets.FERRET_GITHUB_SECRET }}

GitLab CI

.gitlab-ci.yml
yaml
ferret-review:
stage: review
image: ubuntu:22.04
script:
- curl -L https://github.com/Arunachalamkalimuthu/merlin-ai-code-review/releases/latest/download/merlin-linux-amd64 -o ferret
- chmod +x ferret && ./ferret review
variables:
GITLAB_TOKEN: $CI_JOB_TOKEN
ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"

Azure DevOps

azure-pipelines.yml
yaml
trigger: none
pr:
branches:
include: ["*"]
pool:
vmImage: ubuntu-latest
steps:
- script: |
curl -L https://github.com/Arunachalamkalimuthu/merlin-ai-code-review/releases/latest/download/merlin-linux-amd64 -o ferret
chmod +x ferret && ./ferret review
env:
AZURE_DEVOPS_TOKEN: $(System.AccessToken)
ANTHROPIC_API_KEY: $(ANTHROPIC_API_KEY)
SYSTEM_ACCESSTOKEN: $(System.AccessToken)

Docker

shell
docker run --rm \
-e GITHUB_TOKEN=... \
-e ANTHROPIC_API_KEY=... \
-e GITHUB_ACTIONS=true \
-e GITHUB_REPOSITORY=owner/repo \
-e GITHUB_SHA=abc123 \
-e GITHUB_REF=refs/pull/42/merge \
ghcr.io/Arunachalamkalimuthu/merlin-ai-code-review:latest review