# 🚀 enclov-AI — The AI-Powered Pull Request Reviewer You Didn’t Know You Needed

> _“Code reviews shouldn’t slow you down. They should **elevate** your code.”_
> — Kubu Lee, Creator of enclov-AI

---

## 🧠 What if your code reviewer never slept?

Every developer knows the pain — you open a pull request and… **wait.**
Wait for someone to notice. Wait for feedback. Wait for nitpicks that could’ve been automated.

That’s where **enclov-AI** comes in — your **AI-powered pull request reviewer** that reads your code diffs, understands your intent, and leaves smart, contextual feedback right inside your PRs. It’s like having a senior engineer living inside your GitHub repo.

---

## ⚙️ How enclov-AI Works

Behind the scenes, enclov-AI runs a beautiful pipeline that connects GitHub, OpenAI, and your backend stack:

```
GitHub Webhook → FastAPI Server → Celery Queue → OpenAI API → Redis
```

- When a pull request event hits your GitHub webhook,
enclov-AI grabs the diff, runs it through GPT-based reasoning,
and sends back *natural*, human-like code review comments — directly to your PR.

It’s DevOps-meets-AI automation, and it’s fully containerized for **local**, **cloud**, and **CI/CD** deployment.

---

## 🧩 Tech Stack That Powers enclov-AI

| Layer | Technology | Purpose |
|---------------|----------------------|----------|
| **Backend** | FastAPI | Handles GitHub webhooks & API routes |
| **AI Engine** | OpenAI GPT Models | Generates code review insights |
| **Queue** | Celery + Redis | Async job processing |
| **Infra** | Docker Compose | Multi-service orchestration |
| **Frontend** | Static Dark-Themed HTML | For viewing logs and config |

Each piece is modular, so you can swap AI models, add integrations (like Claude or Sonar), or extend it to GitLab.

---

## 🚀 Getting Started

Cloning the repo is all it takes:

```bash
git clone https://github.com/Web4application/enclov-AI.git
cd enclov-AI
docker-compose up --build
```

Once it’s up, you’ve got:

- 🧠 **API** running on `http://localhost:8000`
- ⚙️ **Celery Worker** processing review tasks
- 🔗 **Redis** handling your async queue

Add your OpenAI and GitHub secrets to `.env`, connect your webhook, and watch your first AI review roll in.

---

## 🔍 Why enclov-AI is Different

- **Understands context**, not just syntax — it knows _why_ your code changed.
- **Reduces review fatigue** by catching low-hanging fruit before humans do.
- **Integrates seamlessly** with your GitHub flow — no extra buttons, no clutter.
- **Open-source and extensible** — built for devs, by devs.

You can think of enclov-AI as a next-gen DevOps teammate — part reviewer, part mentor, part watchdog.

---

## 💡 Real Use Case

Imagine you push a PR that refactors a function. enclov-AI reads your changes and drops comments like:

> “This refactor improves readability — consider adding a unit test for the edge case on line 45.”

Or:

> “Variable naming looks inconsistent with project conventions (‘user_id’ vs ‘userID’).”

That’s not generic AI output — it’s **trained insight** that saves time and makes reviews meaningful.

---

## 🧠 Want to Go Further?

enclov-AI is just the beginning. You can extend it with:

- ✅ **GitHub Checks API** for annotated inline results
- ⚙️ **CodeQL + GPT hybrid** reviews
- 💬 **Slack/Discord notifications** for every AI comment
- ☁️ **Auto-deploy with GitHub Actions** (coming soon)

This project isn’t just a tool — it’s a foundation for the next era of AI-assisted development.

---

## 👤 Built by Kubu Lee

I built enclov-AI because I was tired of context-switching between code, reviews, and chat.
AI should **augment** developers, not replace them — and enclov-AI is my proof of concept.

🔗 [GitHub: Web4application/enclov-AI](https://github.com/Web4application/enclov-AI)

---

## 💬 Final Thoughts

AI is changing how we code.
But with enclov-AI, it’s not about replacing developers — it’s about **amplifying** them.

Let’s make reviews smarter, faster, and less painful — because shipping good code should feel good.

> ⚡ enclov-AI — AI that reviews, [local](https://localhost.co/5173) so you can **create.**