Back to directory
tarmojussila avatar
tarmojussila / zai-code-review

zai-code-review

Z.ai Code Review for GitHub Actions

42

Stars

22

Forks

8

Watchers

MIT

License

Z.ai Code Review

AI-powered GitHub Pull Request code review using Z.ai models. Automatic PR comments, bug detection, and improvement suggestions via GitHub Actions.

Features

  • 🚀 Detect bugs
  • 🔍 Suggest improvements
  • 🧠 AI-driven PR feedback
  • ⚡ Works with GitHub Actions

Quickstart

Add this to your .github/workflows/code-review.yml:

name: AI Code Review with Z.ai

on:
  pull_request:
    types: [opened, synchronize]

permissions:
  pull-requests: write

jobs:
  review:
    name: Review
    runs-on: ubuntu-latest
    steps:
      - name: Code Review
        uses: tarmojussila/[email protected]
        with:
          ZAI_API_KEY: ${{ secrets.ZAI_API_KEY }}

Inputs

Input Required Default Description
ZAI_API_KEY Yes Your Z.ai API key
ZAI_MODEL No glm-4.7 Z.ai model to use for review
ZAI_SYSTEM_PROMPT No See below Custom system prompt for the AI reviewer
ZAI_REVIEWER_NAME No Z.ai Code Review Name shown in the review comment header
EXCLUDE_PATTERNS No *.lock,package-lock.json,yarn.lock,pnpm-lock.yaml Comma-separated file patterns to exclude from review
MAX_DIFF_CHARS No 0 (unlimited) Maximum total characters for the diff sent to the API

The default system prompt is:

You are an expert code reviewer. Review the provided code changes and give clear, actionable feedback.

You can override it to focus on specific concerns, enforce coding standards, or adjust the review tone, e.g.:

You are a security-focused code reviewer. Identify vulnerabilities, unsafe patterns, and authentication issues. Skip style comments.

Configuration

To use this action, you must add your Z.ai API key as a GitHub secret.

1️⃣ Get your Z.ai API key

Generate an API key from your Z.ai dashboard.

2️⃣ Add the API key to your repository

  1. Go to your GitHub repository

  2. Click Settings

  3. Navigate to Secrets and variables → Actions

  4. Click New repository secret and add:

    • Name: ZAI_API_KEYValue: your Z.ai API key

Advanced configuration

Instead of using default values for ZAI_MODEL, ZAI_SYSTEM_PROMPT, and ZAI_REVIEWER_NAME, you can override them, and manage them as GitHub Actions variables. This lets you update the model, review prompt, or reviewer name without touching the workflow file.

1️⃣ Add the variables to your repository

  1. Go to your GitHub repository

  2. Click Settings

  3. Navigate to Secrets and variables → Actions

  4. Click the Variables tab

  5. Click New repository variable and add:

    • Name: ZAI_MODELValue: e.g. glm-4.7
    • Name: ZAI_SYSTEM_PROMPTValue: your custom system prompt
    • Name: ZAI_REVIEWER_NAMEValue: e.g. AI Code Review

2️⃣ Reference them in your workflow

      - name: Code Review
        uses: tarmojussila/[email protected]
        with:
          ZAI_API_KEY: ${{ secrets.ZAI_API_KEY }}
          ZAI_MODEL: ${{ vars.ZAI_MODEL }}
          ZAI_SYSTEM_PROMPT: ${{ vars.ZAI_SYSTEM_PROMPT }}
          ZAI_REVIEWER_NAME: ${{ vars.ZAI_REVIEWER_NAME }}

Contributing

Contributions are welcome. See the CONTRIBUTING file for more information.

License

This project is licensed under the MIT License. See the LICENSE file for more information.

Releases

Apr 16, 2026

Download .zip

What's Changed

Add security policy in #20 Fix "Prompt exceeds max length" on large PRs (#21) in #22

Full Changelog: v0.3.0...v0.4.0

What's Changed

Adjustable code reviewer name in #17 Error handling, pagination support and cleanup in #18

Full Changelog: v0.2.0...v0.3.0

Feb 24, 2026

v0.2.0 - Configurable review system prompt

Download .zip

Add configurable review system prompt support: #13

Feb 22, 2026

v0.1.1 - Fix GitHub token handling

Download .zip

Fix GitHub token handling: #9

Feb 22, 2026

v0.1.0 - Initial Release

Download .zip

AI-powered GitHub Pull Request code review using Z.ai models. Automatic PR comments, bug detection, and improvement suggestions via GitHub Actions. Features

Detect bugs Suggest improvements AI-driven...