Getting Started
Platforms
Ferret auto-detects the VCS platform from CI environment variables. No manual config needed.
| Platform | Auto-detected env var | Token env var |
|---|---|---|
| GitHub | GITHUB_ACTIONS=true | GITHUB_TOKEN |
| GitLab | GITLAB_CI=true | GITLAB_TOKEN |
| Bitbucket | BITBUCKET_BUILD_NUMBER | BITBUCKET_TOKEN |
| Azure DevOps | TF_BUILD=true | AZURE_DEVOPS_TOKEN |
| Gitea | GITEA_ACTIONS=true | GITEA_TOKEN |
GitHub Actions
.github/workflows/ferret-review.yml
yamlon:pull_request:types: [opened, synchronize]jobs:ferret-review:runs-on: ubuntu-latestpermissions:pull-requests: writesteps:- uses: actions/checkout@v4with:fetch-depth: 0- run: |curl -L https://github.com/Arunachalamkalimuthu/merlin-ai-code-review/releases/latest/download/merlin-linux-amd64 -o ferretchmod +x ferret && ./ferret reviewenv: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
yamlon:issue_comment:types: [created]jobs:ferret-bot:runs-on: ubuntu-latestpermissions:pull-requests: writesteps:- uses: actions/checkout@v4- run: ./ferret webhook --port 8080env:GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}FERRET_GITHUB_SECRET: ${{ secrets.FERRET_GITHUB_SECRET }}
GitLab CI
.gitlab-ci.yml
yamlferret-review:stage: reviewimage: ubuntu:22.04script:- curl -L https://github.com/Arunachalamkalimuthu/merlin-ai-code-review/releases/latest/download/merlin-linux-amd64 -o ferret- chmod +x ferret && ./ferret reviewvariables:GITLAB_TOKEN: $CI_JOB_TOKENANTHROPIC_API_KEY: $ANTHROPIC_API_KEYrules:- if: $CI_PIPELINE_SOURCE == "merge_request_event"
Azure DevOps
azure-pipelines.yml
yamltrigger: nonepr:branches:include: ["*"]pool:vmImage: ubuntu-lateststeps:- script: |curl -L https://github.com/Arunachalamkalimuthu/merlin-ai-code-review/releases/latest/download/merlin-linux-amd64 -o ferretchmod +x ferret && ./ferret reviewenv: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