Codex: أتمتة Codex و CI/CD

آخر تحديث: 2026-08-31

الوضع غير التفاعلي لـ Codex يجعله مثاليًا لتكامل CI/CD، مما يتيح مراجعة كود مؤتمتة وضمان الجودة.

📋 المتطلبات المسبقة: معرفة أساسية بـ CI/CD، إلمام بـ GitHub Actions

1. ما ستتعلمه


2. دور Codex في CI/CD

الدور الوصف المشغل
مراجع الكود مراجعة تلقائية لـ PRs عند إنشاء PR
مولّد الاختبارات استكمال اختبارات تلقائي عند تغير الكود
محدّث التوثيق تحديث التوثيق تلقائي عند تغير API
ماسح أمني فحص الثغرات عند كل التزام

3. تكامل GitHub Actions

(1) الإعداد الأساسي

YAML
# .github/workflows/codex-review.yml
name: Codex Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Codex Review
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          npm install -g @openai/codex
          git diff origin/main...HEAD | codex --quiet --sandbox readonly \
            "Review this PR's changes, focusing on: 1. Security vulnerabilities 2. Performance issues 3. Code style" \
            > review-comment.md
      - name: Post Review
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const comment = fs.readFileSync('review-comment.md', 'utf8');
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: comment
            });

▶ مثال 1: المراجعة المؤتمتة لأليس

YAML
# Alice's PR review pipeline
name: Auto Review

on:
  pull_request:

jobs:
  security-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Security Scan
        run: |
          codex --quiet --sandbox readonly \
            "Scan code for security vulnerabilities: SQL injection, XSS, sensitive data leaks"

  performance-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Performance Check
        run: |
          codex --quiet --sandbox readonly \
            "Analyze code performance issues: N+1 queries, memory leaks, unnecessary computation"

4. توليد اختبارات مؤتمت

(1) توليد اختبارات مُسبّب بـ PR

YAML
name: Generate Tests

on:
  pull_request:
    paths:
      - 'src/**'

jobs:
  generate-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check Coverage
        run: |
          npm test -- --coverage
          COVERAGE=$(cat coverage/coverage-summary.json | jq '.total.lines.pct')
          if [ "$COVERAGE" -lt 80 ]; then
            echo "Coverage below 80%, generating tests..."
            codex --full-auto \
              "Supplement unit tests for files with insufficient coverage, target 80%"
          fi

(2) توليد اختبارات مجدول

YAML
name: Weekly Test Update

on:
  schedule:
    - cron: '0 2 * * 1'  # Every Monday at 2 AM

jobs:
  update-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Update Tests
        run: |
          codex --full-auto \
            "Check all source files, generate unit tests for files lacking them"

5. بوابات الجودة

(1) فحص جودة الكود

YAML
name: Quality Gate

on:
  pull_request:

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Quality Check
        run: |
          RESULT=$(codex --quiet --sandbox readonly \
            "Evaluate code quality, score 1-10, criteria: readability, maintainability, security, performance")
          echo "$RESULT"
          SCORE=$(echo "$RESULT" | grep -oP 'Score: \K\d+')
          if [ "$SCORE" -lt 7 ]; then
            echo "Quality score below 7, blocking PR"
            exit 1
          fi

(2) إصلاح تلقائي + مراجعة يدوية

YAML
name: Auto Fix and Review

on:
  pull_request:

jobs:
  auto-fix:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Auto Fix
        run: |
          codex --auto-edit \
            "Fix all lint errors and formatting issues"
          git diff > auto-fixes.patch
      - name: Upload Patch
        uses: actions/upload-artifact@v4
        with:
          name: auto-fixes
          path: auto-fixes.patch

6. المسح الأمني

YAML
name: Security Scan

on:
  push:
    branches: [main]
  pull_request:

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Security Audit
        run: |
          codex --quiet --sandbox readonly \
            "Perform security audit:
            1. Check for hardcoded keys and credentials
            2. Check SQL injection risks
            3. Check XSS risks
            4. Check insecure dependencies
            5. Check insecure API calls
            Output risk levels and remediation suggestions"

7. التحكم في التكلفة

الاستراتيجية الوصف
تقييد المشغلات شغّل فقط عند تغير المسارات الحرجة
استخدام وضع القراءة فقط مراجعة المهام بـ --sandbox readonly
اختيار النموذج المناسب خفيف للمراجعة، قوي للتوليد
تخزين النتائج مؤقتًا لا تعيد مراجعة كود مطابق
تعيين مهل زمنية تجنب استهلاك المهام طويلة التشغيل لـ tokens

❓ أسئلة شائعة

س هل Codex في CI/CD آمن؟
ج استخدام --sandbox readonly يراجع فقط دون إجراء تغييرات. عند الحاجة للتعديل، استخدم --auto-edit وراجع النتائج يدويًا.
س كم تكلف كل تشغيل CI؟
ج يعتمد على تعقيد المهمة والنموذج. مراجعات بسيطة ~0.01-0.05$/تشغيل، توليد معقد ~0.1-0.5$/تشغيل. فكر في استخدام DeepSeek لتقليل التكاليف.
س هل يمكنه أن يحل محل SonarQube؟
ج ليس بالكامل. يتفوق Codex في المراجعة على المستوى الدلالي، ويتفوق SonarQube في المسح على مستوى القواعد. كل منهما يكمل الآخر.
س كيف أمنع Codex من التعليق في CI؟
ج عيّن معلمة timeout، استخدم الوضع غير التفاعلي، إعداد --approval-policy approve أو deny.
س هل يمكن لـ GitLab CI أيضًا استخدام Codex؟
ج نعم. Codex CLI يعمل عبر المنصات ويعمل مع أي نظام CI.

📖 ملخص


📝 تمارين

  1. أساسي (⭐): أنشئ سير عمل GitHub Actions يشغّل مراجعة كود Codex تلقائيًا على PRs.
  2. متوسط (⭐⭐): نفّذ توليد اختبارات مؤتمت — عندما تنخفض التغطية عن 80%، استكمل الاختبارات تلقائيًا.
  3. متقدم (⭐⭐⭐): صمم خط أنابيب CI/CD كامل: مراجعة كود ← إصلاح تلقائي ← توليد اختبارات ← مسح أمني ← بوابة جودة.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%