رفتن به محتوا
cloudhostمستندات
شروع

ریپازیتوری‌های Git

GitHub یا GitLab را به تیم متصل کنید و پروژه را به یک ریپازیتوری ببندید. هر push بیلد و مستقر می‌شود؛ بی‌نیاز از CLI.

اتصال حساب#

در داشبورد: تنظیمات ← Git، یا هنگام «پروژهٔ جدید ← وارد کردن یک ریپازیتوری». فقط مالک و ادمین تیم حساب وصل یا جدا می‌کنند.

  • GitHub: برنامهٔ ما را روی حساب یا سازمان نصب می‌کنید و ریپازیتوری‌هایی را که می‌خواهید برمی‌گزینید. هر نصب فقط به یک تیم تعلق دارد.
  • GitLab (gitlab.com): با OAuth تایید می‌کنید.
  • GitLab خودمیزبان: آدرس https آن را می‌دهید. اگر این پلتفرم برای آن آدرس برنامه‌ای ندارد، در GitLab خودتان یک برنامهٔ OAuth ایجاد کنید (محدودهٔ api، آدرس بازگشت: همان که پلتفرم نشان می‌دهد) و شناسه و سکرتش را بدهید.
نمونه
cloudhost git connect github
cloudhost git connect gitlab --url https://git.example.com --application <id>   # the secret on stdin
cloudhost git connections

با هر push چه می‌شود#

  • push به شاخهٔ پروداکشن (پیش‌فرض: شاخهٔ پیش‌فرض ریپازیتوری)، پروداکشن را مستقر می‌کند.
  • push به هر شاخهٔ دیگر یک پیش‌نمایش در <شاخه>--<نام> بیلد می‌کند، با دیتابیس و متغیرهای پیش‌نمایش. می‌توانید پیش‌نمایش‌ها را در تنظیمات پروژه خاموش کنید.
  • نام‌های main و master و production همیشه تولیدند؛ اگر شاخهٔ پروداکشن چیز دیگری است، push به آن‌ها بیلد نمی‌شود.
  • pull request از fork بیلد نمی‌شود، چون کد آن با متغیرهای پروژه اجرا می‌شد.
  • حذف شاخه، پیش‌نمایش آن را حذف می‌کند. یک کامیت که ساخته یا در حال بیلد است دوباره بیلد نمی‌شود.

برای بیلد فوری یک شاخه: «بیلد همین حالا» در تنظیمات Git پروژه یا:

نمونه
cloudhost apps git deploy shop --branch feature/cart
cloudhost apps builds shop

وضعیت روی کامیت و pull request#

هر بیلد یک وضعیت روی کامیت می‌نویسد (در حال بیلد، آماده، ناموفق) با لینک به صفحهٔ استقرار. برای pull request (در GitLab: merge request) یک نظر نوشته و با پیشرفت بیلد به‌روز می‌شود؛ لینک پیش‌نمایش در آن است.

امنیت#

  • Git ما را با یک وب‌هوک امضاشده خبر می‌کند؛ امضا (GitHub: HMAC-SHA256، GitLab: توکن اختصاصی هر پروژه) پیش از هر کاری بررسی می‌شود.
  • ریپازیتوری داخل سندباکس بیلد clone می‌شود، با توکن کوتاه‌مدت و فقط‌خواندنی (GitHub: فقط همان ریپازیتوری، حدود یک ساعت). این توکن‌ها هیچ‌جا ذخیره نمی‌شوند و به لاگ بیلد نمی‌رسند، و پس از clone از محیط بیلد برداشته می‌شوند.
  • GitLab توکن را نمی‌تواند به یک ریپازیتوری محدود کند؛ توکن دسترسی کوتاه‌مدت شما به‌کار می‌رود. توکن‌های به‌روزرسانی GitLab رمزشده با کلید تیم نگه داشته می‌شوند چون باید بچرخند.
  • با جدا کردن حساب (یا برداشتن برنامه در GitHub)، بیلد خودکار متوقف می‌شود؛ استقرارهای قبلی می‌مانند.