Bitbucket Pipelines
الترجمة بالذكاء الاصطناعي مع Bitbucket Pipelines وتكامل CI/CD من Lingo.dev
تكامل Lingo.dev مع Bitbucket Pipelines هو تكامل CI/CD آمن ومفتوح المصدر يقوم تلقائيًا بتوطين المحتوى الجديد ويمنع الترجمات غير المكتملة من الوصول إلى الإنتاج. ينشئ طلبات سحب أو يلتزم مباشرة بفرعك، اعتمادًا على متطلبات سير عمل فريقك.
كما ينفذ حل تلقائي للتعارضات من خلال إعادة الأساس، بحيث تظل ترجماتك متزامنة مع الكود الخاص بك دون تدخل يدوي.
يدعم التكامل سيناريوهات سير عمل متعددة:
- الالتزامات المباشرة للفروع عند دفع تغييرات المحتوى
- طلبات السحب المستهدفة للفروع لتحديثات الترجمة
عند إكمال هذا الدليل، ستتمكن من:
- إعداد التوطين التلقائي الذي يتم تشغيله بواسطة عمليات دفع الكود؛
- تكوين المصادقة الآمنة باستخدام متغيرات المستودع؛
- الاختيار بين الالتزامات المباشرة أو سير عمل طلبات السحب؛
- فهم كيفية ملاءمة التوطين المستمر لعمليتك الحالية.
لنبدأ!
المتطلبات الأساسية
إعداد المستودع
يجب أن يحتوي مستودعك على Lingo.dev CLI مكوّن بملف i18n.json صالح. إذا لم تقم بإعداد هذا بعد، أكمل دليل البدء السريع لـ CLI أولاً.
الخطوة 1. إعداد المصادقة
يحتاج تكامل Lingo.dev مع Bitbucket إلى الوصول إلى محرك الترجمة والمستودع الخاص بك. تتم المصادقة من خلال متغيرات المستودع التي تحافظ على أمان بيانات الاعتماد الخاصة بك.
إضافة مفتاح API الخاص بك
انتقل إلى إعدادات المستودع → متغيرات المستودع في مستودعك، ثم أضف بيانات اعتماد محرك الترجمة:
لمستخدمي واجهة برمجة تطبيقات LLM الخام:
- اسم المتغير:
OPENAI_API_KEYأوANTHROPIC_API_KEY - قيمة المتغير: مفتاح API الخاص بك من المزود المعني
لمستخدمي محرك Lingo.dev:
- اسم المتغير:
LINGODOTDEV_API_KEY - قيمة المتغير: مفتاح API للمشروع من lingo.dev/app
إضافة رمز وصول Bitbucket (لوضع طلب السحب)
إذا كنت تخطط لاستخدام وضع طلب السحب، قم بإنشاء رمز وصول:
- انتقل إلى إعدادات المستودع ← رموز الوصول ← إنشاء رمز وصول للمستودع
- امنح هذه الصلاحيات:
- قراءة وكتابة المستودعات
- قراءة وكتابة طلبات السحب
- أضف الرمز كمتغير للمستودع:
- اسم المتغير:
BB_TOKEN - قيمة المتغير: رمز الوصول الخاص بك في Bitbucket
- اسم المتغير:
الخطوة 2. إنشاء سير العمل
قم بإنشاء أو تحديث ملف bitbucket-pipelines.yml الخاص بك بهذا التكوين الأساسي:
script:
- pipe: lingodotdev/lingo.dev:main
يستخدم هذا التكوين أداة Lingo.dev ويشغل محرك الترجمة تلقائيًا.
الأذونات المطلوبة
تتطلب Bitbucket Pipelines الوصول إلى متغيرات المستودع وعمليات git:
متغيرات المستودع:
LINGODOTDEV_API_KEY— مطلوب لمستخدمي محرك Lingo.devOPENAI_API_KEYأوANTHROPIC_API_KEY— مطلوب لمستخدمي واجهة برمجة التطبيقات الخام للنماذج اللغوية الكبيرة
لوضع طلب السحب:
BB_TOKEN— مطلوب لإنشاء وإدارة طلبات السحب
نطاقات رمز الوصول (عند استخدام وضع طلب السحب):
- قراءة وكتابة المستودعات — الوصول إلى محتوى المستودع وتعديله
- قراءة وكتابة طلبات السحب — إنشاء وإدارة طلبات السحب
تسمح هذه الأذونات للتكامل بقراءة المحتوى الخاص بك، وإنشاء الترجمات، وتحديث المستودع الخاص بك بالمحتوى المترجم.
الخطوة 3. اختر وضع سير العمل الخاص بك
يدعم تكامل Lingo.dev مع Bitbucket وضعين تشغيليين اعتمادًا على متطلبات مراجعة الكود لفريقك.
وضع الالتزام المباشر (افتراضي)
يلتزم التكامل بالترجمات مباشرة إلى الفرع الخاص بك:
script:
- pipe: lingodotdev/lingo.dev:main
يعمل هذا الوضع بشكل أفضل لـ:
- المطورين الفرديين أو الفرق الصغيرة
- فروع الميزات التي ستتم مراجعتها قبل الدمج
- المشاريع التي لا تتطلب فيها تحديثات الترجمة مراجعة منفصلة
وضع طلب السحب
ينشئ التكامل طلبات السحب لتحديثات الترجمة:
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_PULL_REQUEST: "true"
الإعداد المطلوب لوضع طلب السحب
متغيرات المستودع:
يجب تكوين كل من LINGODOTDEV_API_KEY و BB_TOKEN كمتغيرات مستودع.
متطلبات رمز الوصول:
يجب أن يتضمن BB_TOKEN الخاص بك أذونات القراءة والكتابة لكل من المستودعات وطلبات السحب.
ملاحظة: متغير BB_TOKEN مطلوب عند استخدام وضع طلب السحب.
يعمل هذا الوضع بشكل أفضل لـ:
- الفرق ذات متطلبات مراجعة الكود الصارمة
- المشاريع التي تحتاج فيها تغييرات الترجمة إلى موافقة منفصلة
- سير العمل الذي يتطلب مراجعة صريحة لجميع التغييرات
الخطوة 4. سيناريوهات سير العمل
تكامل Lingo.dev مع Bitbucket يتكيف مع سير عمل التطوير المختلفة. فهم هذه السيناريوهات يساعدك على اختيار التكوين المناسب لفريقك.
السيناريو 1: تحديثات فرع الميزة (الالتزامات المباشرة)
المحفز: الدفع إلى فروع الميزات الإجراء: يلتزم بتحديثات الترجمة مباشرة إلى فرع الميزة
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
التدفق: تغييرات المحتوى المدفوعة إلى فرع الميزة ← يلتزم التكامل بالترجمات إلى نفس الفرع
هذا يحافظ على تحديثات الترجمة ضمن فرع الميزة، مما يضمن مراجعة الترجمات جنبًا إلى جنب مع التغييرات الأصلية.
السيناريو 2: طلبات السحب للتحديثات (وضع طلب السحب)
المحفز: الدفع إلى أي فرع مكوّن الإجراء: ينشئ طلب سحب مع تحديثات الترجمة
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_API_KEY: "${MY_LINGODOTDEV_API_KEY}" # or OPENAI_API_KEY/ANTHROPIC_API_KEY
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
التدفق: تغييرات المحتوى المدفوعة إلى الفرع ← ينشئ التكامل طلب سحب مع الترجمات
هذا يحافظ على مراجعات منفصلة لتحديثات الترجمة.
التكوين المتقدم
قم بتخصيص سلوك التكامل باستخدام متغيرات إضافية:
مثال مع محرك Lingo.dev:
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
LINGODOTDEV_API_KEY: "${MY_LINGODOTDEV_API_KEY}"
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
مثال مع واجهة برمجة التطبيقات LLM الأساسية:
image:
name: atlassian/default-image:2
pipelines:
branches:
feat/*:
- step:
name: Run i18n
script:
- pipe: lingodotdev/lingo.dev:main
variables:
OPENAI_API_KEY: "${MY_OPENAI_API_KEY}" # or ANTHROPIC_API_KEY
BB_TOKEN: "${MY_ACCESS_TOKEN}"
LINGODOTDEV_PULL_REQUEST: "true"
LINGODOTDEV_PULL_REQUEST_TITLE: "feat: update translations"
LINGODOTDEV_COMMIT_MESSAGE: "feat: update translations"
LINGODOTDEV_WORKING_DIRECTORY: "apps/web"
LINGODOTDEV_PROCESS_OWN_COMMITS: "true"
خيارات التكوين:
LINGODOTDEV_API_KEY— مفتاح API الخاص بمحرك Lingo.dev، إذا كنت تستخدم محرك Lingo.devOPENAI_API_KEY— مفتاح API الخاص بـ OpenAI، إذا كنت تستخدم واجهة برمجة تطبيقات LLM مباشرةANTHROPIC_API_KEY— مفتاح API الخاص بـ Anthropic، إذا كنت تستخدم واجهة برمجة تطبيقات LLM مباشرةLINGODOTDEV_PULL_REQUEST— إنشاء طلب سحب بدلاً من الالتزام المباشر (الافتراضي:false)LINGODOTDEV_PULL_REQUEST_TITLE— عنوان مخصص لطلب السحب (الافتراضي:feat: update translations via @lingodotdev)LINGODOTDEV_COMMIT_MESSAGE— رسالة التزام مخصصة (الافتراضي:feat: update translations via @lingodotdev)LINGODOTDEV_WORKING_DIRECTORY— تشغيل التكامل في دليل فرعي (الافتراضي:.)LINGODOTDEV_PROCESS_OWN_COMMITS— معالجة الالتزامات التي تم إجراؤها بواسطة هذا التكامل (الافتراضي:false)BB_TOKEN— رمز الوصول إلى Bitbucket (مطلوب لوضع طلب السحب)