返回

17. OpenClaw Uygulama: AI Programlama Asistanı Oluşturma

Bu makale, OpenClaw ile AI programlama asistanı oluşturmayı gösterir. Claude Code, Codex gibi araçları entegre ederek kod incelemesi, otomatik test, CI/CD entegrasyonu gibi işlevleri gerçekleştirir ve geliştirme verimliliğini artırır.

OpenClaw v2026.2 için geçerlidir | coding-agent, git-workflows, test-runner skill’lerini yüklemeniz ve proje kod tabanına erişim yetkiniz olması gerekir.

TL;DR: Kod incelemesi: Agent, PR değişikliklerini analiz edip inceleme raporu oluşturur. Otomatik test: "test-runner": {"frameworks": ["jest", "vitest"]}. CI/CD entegrasyonu: Webhook ile GitHub/GitLab olaylarını alır. Çoklu proje yönetimi: "projects": {"frontend": {...}, "backend": {...}}. Temel komut: openclaw agent --message "Bu PR'ı incele".

Uygulama Hedefi

Şunları yapabilen bir AI programlama asistanı oluşturmak:

  1. Kod incelemesi otomasyonu
  2. Test çalıştırma ve sonuç raporlama
  3. Kod belgesi oluşturma
  4. CI/CD ardışık düzen entegrasyonu
  5. Çoklu proje bağlam geçişi

Gerekli Skill’leri Yükleme

# Programlama ile ilgili skill'ler
openclaw skill install coding-agent
openclaw skill install debug-pro
openclaw skill install git-workflows
openclaw skill install docker-essentials

# Test skill'i
openclaw skill install test-runner

Kod İncelemesi Otomasyonu

Kod İncelemesi Yapılandırması

---
name: code-review-assistant
version: 1.0.0
description: Automated code review with OpenClaw
triggers:
  - code review
  - kod incelemesi
  - review
  - PR review
---

# Code Review Assistant

Automate code review for pull requests.

## Features

- Review code changes
- Check for common issues
- Suggest improvements
- Generate review comments

## Review Checklist

1. **Kod Kalitesi**
   - İsimlendirme kuralları
   - Kod yapısı
   - Hata işleme

2. **Güvenlik**
   - SQL enjeksiyonu
   - XSS açıkları
   - Gizli bilgi sızıntısı

3. **Performans**
   - N+1 sorguları
   - Bellek sızıntıları
   - Verimsiz algoritmalar

4. **En İyi Uygulamalar**
   - DRY prensibi
   - SOLID prensipleri
   - Tasarım kalıpları

Kod İncelemesi Senaryosu

Kullanıcı: Bu PR'ı incele

Agent: Tamam, PR #123'ü inceliyorum...

[PR bilgilerini al]
[Kod değişikliklerini analiz et]
[Olası sorunları kontrol et]

## PR #123 İnceleme Raporu

### Genel Bakış
- Dal: feature/user-search
- Değişiklik: +156 -23
- Dosya: 8 adet

### Bulunan Sorunlar

**Kritik** (1):
- 🚨 `auth.js:45` - Parola düz metin olarak depolanma riski

**Uyarı** (3):
- ⚠️ `search.js:23` - Potansiyel SQL enjeksiyonu
- ⚠️ `user.js:78` - İşlenmemiş Promise
- ⚠️ `utils.js:12` - Kullanımdan kaldırılmış API

**Öneriler** (5):
- 💡 Birim testi eklemeyi düşünün
- 💡 Sihirli sayılar yerine sabitler kullanın
- 💡 Hata sınırı eklemeyi düşünün
- 💡 Ortak metodu ayırmayı düşünün
- 💡 Tür açıklamaları eklemeyi düşünün

### Kodun Güçlü Yanları
- ✅ İyi fonksiyon isimlendirmesi
- ✅ Mantıklı modül ayrımı
- ✅ Uygun yorumlar

İnceleme yorumları oluşturmamı ister misiniz?

Otomatik Test

Test Çalıştırma Yapılandırması

{
  "skills": {
    "test-runner": {
      "frameworks": ["jest", "vitest", "pytest"],
      "coverage": {
        "enabled": true,
        "threshold": 80
      },
      "reporting": {
        "format": "markdown",
        "output": "test-report.md"
      }
    }
  }
}

Test Senaryosu

Kullanıcı: Testleri çalıştır ve sonuçları raporla

Agent: Testler çalıştırılıyor...

[Test komutunu çalıştır]
[Test sonuçlarını topla]
[Kapsam oranını analiz et]

## Test Raporu

### Test Sonuçları
- Toplam: 45 test
- Geçen: 42 ✅
- Başarısız: 2 ❌
- Atlanan: 1 ⏭️

### Başarısız Testler

**1. UserSearch.test.js**

AssertionError: expected [] to equal [{id: 1, name: ’test’}]

Öneri: Veritabanı bağlantısını veya mock verilerini kontrol edin

**2. Auth.test.js**

Timeout: Async callback not invoked within 5000ms

Öneri: Zaman aşımını artırın veya asenkron mantığı kontrol edin

### Kapsam Oranı

| Dosya | İfade | Dal | Fonksiyon | Satır |
|-------|-------|-----|-----------|-------|
| auth.js | %85 | %78 | %90 | %85 |
| search.js | %72 | %65 | %80 | %70 |
| user.js | %90 | %85 | %95 | %90 |
| **Toplam** | **%82** | **%76** | **%88** | **%82** |

Başarısız testleri düzeltmemi ister misiniz?

CI/CD Entegrasyonu

GitHub Actions Entegrasyonu

# .github/workflows/openclaw-review.yml
name: OpenClaw Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Setup OpenClaw
        run: npm install -g openclaw@latest
        
      - name: Run Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          openclaw agent --message "Review PR #${{ github.event.pull_request.number }}" \
            --output review-comment.md
            
      - name: Post Comment
        uses: actions/github-script@v6
        with:
          script: |
            const fs = require('fs');
            const comment = fs.readFileSync('review-comment.md', 'utf8');
            await github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.issue.number,
              body: comment
            });

Otomatik Dağıtım

Kullanıcı: Staging'e dağıt

Agent: Staging ortamına dağıtılıyor...

[En son kodu çek]
[Testleri çalıştır]
[Projeyi derle]
[Sunucuya dağıt]

## Dağıtım Raporu

### Dağıtım Bilgileri
- Ortam: staging
- Dal: main
- Commit: abc1234
- Zaman: 2026-02-26 15:30

### Dağıtım Adımları
1. ✅ Kod çekildi
2. ✅ Bağımlılıklar yüklendi
3. ✅ Testler çalıştırıldı (45/45 geçti)
4. ✅ Proje derlendi
5. ✅ Sunucuya dağıtıldı

### Sağlık Kontrolü
- API: ✅ Normal
- Veritabanı: ✅ Bağlantı normal
- Redis: ✅ Bağlantı normal

### Erişim Adresi
- URL: https://staging.example.com
- API: https://api-staging.example.com

Dağıtım başarılı!

Çoklu Proje Yönetimi

Proje Yapılandırması

{
  "projects": {
    "frontend": {
      "path": "~/projects/frontend",
      "skills": ["coding-agent", "test-runner"],
      "context": "AGENTS.md"
    },
    "backend": {
      "path": "~/projects/backend",
      "skills": ["coding-agent", "docker-essentials"],
      "context": "AGENTS.md"
    },
    "mobile": {
      "path": "~/projects/mobile",
      "skills": ["coding-agent"],
      "context": "AGENTS.md"
    }
  }
}

Proje Geçişi

Kullanıcı: Backend projesine geç

Agent: Backend projesine geçildi.

Mevcut proje bilgileri:
- Ad: backend
- Yol: ~/projects/backend
- Teknoloji: Python/FastAPI
- Son commit: Kullanıcı kimlik doğrulaması eklendi

Size nasıl yardımcı olabilirim?

Kod Oluşturma

Şablon Kod Oluşturma

Kullanıcı: User modeli için CRUD API oluştur

Agent: Tamam, User modeli için CRUD API oluşturuyorum...

[Mevcut kod yapısını analiz et]
[Kod dosyalarını oluştur]

Aşağıdaki dosyalar oluşturuldu:

**1. models/user.py**
```python
from pydantic import BaseModel
from datetime import datetime

class User(BaseModel):
    id: int
    name: str
    email: str
    created_at: datetime
    updated_at: datetime

class UserCreate(BaseModel):
    name: str
    email: str

class UserUpdate(BaseModel):
    name: str | None = None
    email: str | None = None

2. routers/users.py

from fastapi import APIRouter, HTTPException
from models.user import User, UserCreate, UserUpdate

router = APIRouter(prefix="/users", tags=["users"])

@router.get("/", response_model=list[User])
async def list_users(): ...

@router.get("/{user_id}", response_model=User)
async def get_user(user_id: int): ...

@router.post("/", response_model=User)
async def create_user(user: UserCreate): ...

@router.put("/{user_id}", response_model=User)
async def update_user(user_id: int, user: UserUpdate): ...

@router.delete("/{user_id}")
async def delete_user(user_id: int): ...

3. tests/test_users.py

from fastapi.testclient import TestClient

def test_list_users(): ...
def test_create_user(): ...
def test_update_user(): ...
def test_delete_user(): ...

Doğrulamak için testleri çalıştırmamı ister misiniz?


## Belge Oluşturma

### API Belgeleri

Kullanıcı: Bu API için belge oluştur

Agent: API uç noktaları analiz ediliyor…

[Rota dosyalarını tara] [API bilgilerini çıkar] [Belge oluştur]

API Belgeleri

Kullanıcı Modülü

GET /users

Kullanıcı listesini getir

Parametreler

Ad Tür Gerekli Açıklama
page int Hayır Sayfa numarası
limit int Hayır Sayfa başına miktar

Yanıt

{
  "data": [User],
  "total": int,
  "page": int,
  "limit": int
}

POST /users

Kullanıcı oluştur

İstek Gövdesi

{
  "name": "string",
  "email": "string"
}

Yanıt

{
  "id": 1,
  "name": "string",
  "email": "string",
  "created_at": "2026-02-26T00:00:00Z",
  "updated_at": "2026-02-26T00:00:00Z"
}

docs/api.md olarak kaydedeyim mi?


## Sorun Giderme

### CI/CD Sorunları

```bash
# CI/CD durumunu kontrol et
openclaw ci status

# CI/CD günlüklerini görüntüle
openclaw ci logs --last

# Başarısız işi yeniden çalıştır
openclaw ci retry

Kod Sorunları

# Kod sorunlarını analiz et
openclaw analyze --project backend

# Düzeltme önerileri oluştur
openclaw suggest --file auth.js

Özet

OpenClaw ile programlama asistanı oluşturarak:

  • Kod İncelemesi: Otomatik PR incelemesi
  • Test Çalıştırma: Otomatik test ve raporlama
  • CI/CD Entegrasyonu: Otomatik dağıtım süreci
  • Çoklu Proje Yönetimi: Hızlı bağlam geçişi
  • Kod Oluşturma: Şablon kod üretimi
  • Belge Oluşturma: Otomatik API belgesi

Güncelleme Geçmişi:

  • 2026-02-26: İlk sürüm yayınlandı

Seri Navigasyonu: