# Automating Code Reviews with GitHub Actions and OpenAI

> Source: <https://dev.to/farukh/automating-code-reviews-with-github-actions-and-openai-3h29>
> Published: 2026-06-13 19:35:38+00:00

Manual code reviews are a bottleneck in fast-moving development teams. Automating initial feedback loops ensures consistency and allows human reviewers to focus on architectural decisions rather than trivial syntax issues.

An AI-assisted code review workflow uses a CI/CD pipeline—triggered on Pull Request events—to send diffs to an LLM for automated analysis. This process identifies potential bugs, security vulnerabilities, and code style improvements before a human engineer ever opens the PR.

This implementation uses **GitHub Actions** to trigger on `pull_request`

events and the **OpenAI API** to process the code changes.

Create a file at `.github/workflows/ai-review.yml`

in your repository:

```
name: AI Code Review
on: pull_request
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run AI Review
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          node scripts/ai-reviewer.js
```

The `scripts/ai-reviewer.js`

fetches the current PR diff and sends it to GPT-4o for analysis:

``` js
const { OpenAI } = require('openai');
const { execSync } = require('child_process');

async function reviewCode() {
  const diff = execSync('git diff origin/main').toString();
  const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

  const response = await openai.chat.completions.create({
    model: 'gpt-4o',
    messages: [{ role: 'user', content: `Review this code for bugs and style: ${diff}` }]
  });

  console.log(response.choices[0].message.content);
}

reviewCode();
```

`.ts`

, `.tsx`

) to keep diffs small.`OPENAI_API_KEY`

is added to your repository's Secrets, never hardcode it.Integrating AI into the code review process offers immense speed, but it can introduce "false positives" that frustrate senior developers. **What specific guardrails or automated tests do you implement to ensure AI feedback remains helpful rather than noisy?**
