Codex: أتمتة Codex و CI/CD
آخر تحديث: 2026-08-31
الوضع غير التفاعلي لـ Codex يجعله مثاليًا لتكامل CI/CD، مما يتيح مراجعة كود مؤتمتة وضمان الجودة.
📋 المتطلبات المسبقة: معرفة أساسية بـ CI/CD، إلمام بـ GitHub Actions
1. ما ستتعلمه
- دور Codex في CI/CD
- تكامل GitHub Actions
- مراجعة الكود المؤتمتة
- إعداد بوابات الجودة
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.
📖 ملخص
- أدوار Codex في CI/CD: مراجع، مولّد اختبارات، ماسح أمني
- تكامل GitHub Actions: مراجعة PRs، توليد اختبارات، بوابات جودة
- وضع الأمان: استخدم readonly للمراجعة، تأكيد يدوي للتعديلات
- التحكم في التكلفة: تقييد المشغلات، اختيار النماذج، تعيين مهل زمنية
📝 تمارين
- أساسي (⭐): أنشئ سير عمل GitHub Actions يشغّل مراجعة كود Codex تلقائيًا على PRs.
- متوسط (⭐⭐): نفّذ توليد اختبارات مؤتمت — عندما تنخفض التغطية عن 80%، استكمل الاختبارات تلقائيًا.
- متقدم (⭐⭐⭐): صمم خط أنابيب CI/CD كامل: مراجعة كود ← إصلاح تلقائي ← توليد اختبارات ← مسح أمني ← بوابة جودة.