گِٿب ۾ شاخن کي ڪيئن ضم ڪجي، گِٿب کي ضم ڪرڻ منسوخ ڪريو، برانچ گِٿب

GitHub ۾ هڪ برانچ ٺاهيو ۽ محفوظ طور تي ضم ڪريو

گٽ هب ۾ برانچ ٺاهڻ سکڻ پهريون قدم آهي. جڏهن ته، گٽ هب ۾ برانچن کي محفوظ طريقي سان ضم ڪرڻ ۾ مهارت حاصل ڪرڻ هر برانچ لاءِ تمام ضروري آهي. GitHub ڪم جو وهڪرو. تنهن ڪري، هن پوسٽ ۾، اسين توهان کي سڄي عمل ذريعي هلائينداسين، شروع ڪندي GitHub ۾ برانچ ڪيئن ٺاهجي ۽ پوءِ توکي ڏيکاريندي GitHub ۾ شاخن کي ڪيئن ضم ڪجي محفوظ طور تي. اسان اهو به ٻڌائينداسين ته جيڪڏهن توهان کي ڪا به پريشاني ملي ته ضم کي ڪيئن منسوخ ڪجي، ۽ آخرڪار، ڪيئن Xygeni توهان جي مکيه شاخ ۾ داخل ٿيڻ کان اڳ هر مسئلي کي پڪڙڻ ۾ مدد ڪري سگهي ٿو.

اچو ته ان کي قدم قدم تي هلون.

1. GitHub ۾ صحيح طريقي سان برانچ ڪيئن ٺاهجي

هر محفوظ ورڪ فلو تڏهن شروع ٿئي ٿو جڏهن توهان GitHub ۾ برانچ ٺاهيندا آهيو. اهو ڊولپرز کي پيداوار ڪوڊ کي متاثر ڪرڻ کان سواءِ خاصيتن، اصلاحن، يا تجربن کي الڳ ڪرڻ جي اجازت ڏئي ٿو.

GitHub ۾ برانچ ٺاهڻ لاءِ:

1. پنهنجي مخزن ڏانهن وڃو

2. برانچ چونڊيندڙ ڊراپ ڊائون تي ڪلڪ ڪريو.

گِٿب ۾ شاخن کي ڪيئن ضم ڪجي، گِٿب ۽ برانچ گِٿب کي ضم ڪرڻ کي منسوخ ڪريو

3. پنهنجي نئين برانچ جو نالو لکو.

4. ڪلڪ ڪريو برانچ ٺاهيو

گِٿب ۾ شاخن کي ڪيئن ضم ڪجي، گِٿب ۽ برانچ گِٿب کي ضم ڪرڻ کي منسوخ ڪريو

هتان کان، توهان جي نئين شاخ تيار آهي. هاڻي توهان ڪوڊ کي اڳتي وڌائي سگهو ٿا، تبديلين تي تعاون ڪري سگهو ٿا، ۽ آخرڪار هڪ کوليو pull request. جيتوڻيڪ هي هڪ بنيادي GitHub عمل آهي، اهو محفوظ ترقي لاءِ اسٽيج مقرر ڪري ٿو.

اهم ڳالهه اها آهي ته، هر ڀيري جڏهن توهان GitHub ۾ برانچ ٺاهيندا آهيو، ته اهو هڪ ورجائيندڙ ۽ محفوظ ورڪ فلو جو حصو هجڻ گهرجي.

2. اسڪين ڪريو Pull Requests ضم ٿيڻ کان اڳ خودڪار طريقي سان

جڏهن توهان GitHub ۾ هڪ برانچ ٺاهيندا آهيو ۽ جائزو وٺڻ لاءِ تيار ڪندا آهيو، ته ايندڙ قدم اهو سمجهڻ آهي ته GitHub ۾ برانچن کي محفوظ طريقي سان ڪيئن ضم ڪجي. هر برانچ GitHub پش کي خودڪار چيڪن کي متحرڪ ڪرڻ گهرجي. پر ضم ڪرڻ کان اڳ، اهو ضروري آهي ته تصديق ڪريو ته ڪوڊ ڪمزورين کي متعارف نٿو ڪرائي. هڪ غير محفوظ commit توهان جي درخواست کي ظاهر ڪري سگهي ٿو، leak secretيا اهم انفراسٽرڪچر کي ٽوڙيو.

ڪوڊ کي پنهنجي مکيه شاخ ۾ ضم ڪرڻ هڪ اعليٰ اثر وارو عمل آهي. صحيح چڪاس کان سواءِ، اهو سنگين نتيجا پيدا ڪري سگهي ٿو جهڙوڪ:

هي اهو هنڌ آهي جتي زائيگيني حقيقي فرق پيدا ڪري ٿو.

استعمال ڪندي GitHub عمل، توهان چالو ڪري سگهو ٿا خودڪار زائيگيني اسڪين جڏهن به ڪو ڊولپر ڪو کوليندو آهي pull request هڪ محفوظ شاخ ۾. GitHub ۾ هڪ محفوظ شاخ اها آهي جنهن کي تبديلين کي ضم ڪرڻ جي اجازت ڏيڻ کان اڳ مخصوص چيڪ يا منظوري جي ضرورت هوندي آهي.

زائيگيني تجزيو ڪري ٿو جي تازي عملدرآمد pull request ڪم ايندڙ تجويز ڪيل تبديلين جي سيڪيورٽي پوزيشن جي تصديق ڪرڻ لاءِ. ان ۾ چيڪ ڪرڻ شامل آهي ڪوڊ ۾ مسئلا، انحصار، راز، ۽ CI/CD ترتيب. مڪمل شاخ کي ٻيهر اسڪين نه ڪيو ويو آهي، پر تازو ورڪ فلو نتيجو پاليسين کي لاڳو ڪرڻ ۽ غير محفوظ ضم کي بلاڪ ڪرڻ لاءِ استعمال ڪيو ويندو آهي.

اهي اسڪين تصديق ڪن ٿا ته ڪوڊ محفوظ ۽ پيداوار لاءِ تيار آهي. اهي ڳوليندا آهن:

هڪجهڙائي اهي چيڪ جلد يقيني بڻائين ٿا ته هر ڀيري جڏهن توهان GitHub ۾ برانچ ٺاهيندا آهيو ۽ ضم ٿيڻ جي تياري ڪندا آهيو، توهان ان سان ڪندا آهيو مڪمل نمائش ۽ ڪنٽرول.

هتي هڪ آسان سيٽ اپ آهي:

on:   pull_request:     branches: [ main ] jobs:   xygeni-scan:     runs-on: ubuntu-latest     steps:       - name: Checkout         uses: actions/checkout@v3       - name: Xygeni Scanner         uses: xygeni/xygeni-action@3.2.0         with:           token: ${{ secrets.XYGENI_TOKEN }}

3. غير محفوظ ضم کي بلاڪ ڪريو Guardrails

Guardrails، پڪ ڪريو ته جڏهن توهان GitHub ۾ برانچ ٺاهيندا آهيو يا GitHub ۾ برانچن کي ضم ڪرڻ جي ڪوشش ڪندا آهيو، صرف محفوظ تبديليون توهان جي مکيه برانچ GitHub سيٽ اپ تائين پهچنديون آهن. Xygeni توهان کي ڏئي ٿو جيڪو ضم ٿئي ٿو ان تي مڪمل ڪنٽرول. توهان اڳ بيان ڪري سگهو ٿاcisتوهان جي سيڪيورٽي پاليسين ۽ خطري جي برداشت جي مطابق ٺهيل ضابطا. مثال طور:

  • جيڪڏهن ڪو اهم راز هجي ته بلاڪ ڪريو ملي ٿو (مثال طور، AWS ڪيز، ٽوڪن)
  • ٺاھڻ ۾ ناڪامي جيڪڏهن هڪ نئون وڏو خطرو اوپن سورس پيڪيج متعارف ڪرايو ويو آهي
  • رد ڪريو pull requests ته حساس رستن کي تبديل ڪريو جهڙو .github/workflows/, infrastructure/، يا secrets.env
  • ضم ٿيڻ کان روڪيو جيڪڏهن هڪ ڊائون گريڊ ٻيهر متعارف ڪرايو ويو آهي سڃاتو وڃي ٿو آگاهي
  • بلاڪ CI/CD ترتيب ۾ تبديليون جيستائين صحيح طرح سان ليبل نه هجي
  • جيڪڏهن ضم ٿيڻ بند ڪريو SAST وڌيڪ ڳولي ٿو يا نازڪ مسئلا
  • سخت لاڳو ڪريو Guardrails پيداواري شاخن تي ترقي ۾ لچڪ برقرار رکڻ دوران

اهي قاعدا خودڪار گيٽ ڪيپر طور ڪم ڪن ٿا. اهي توهان جي ٽيم کي صرف اهو ضم ڪرڻ ۾ مدد ڪن ٿا جيڪو محفوظ آهي، ڪو به تعجب ناهي، ڪو به دستي جائزو ناهي، ڪو به آخري منٽ فائر فائٽنگ ناهي.

گارڊ ريل جي قاعدي جي مثال:

guardrail block_critical_secrets   on secrets   when severity = critical   then @fail()

بصري موٽ ۾ Dashboard

گِٿب ۾ شاخن کي ڪيئن ضم ڪجي، گِٿب ۽ برانچ گِٿب کي ضم ڪرڻ کي منسوخ ڪريو

مڪمل نمائش کي يقيني بڻائڻ لاءِ، زائيگيني گارڊريل اسٽيٽس جي تازي تشخيص جو نتيجو ڏيکاري ٿو.

  • سپ کان پهريان، سائي آئڪن جو مطلب آهي سڀئي پاليسيون منظور ٿيل آهن.
  • جي برعڪس، هڪ ڳاڙهي آئڪن اشارو ڪري ٿو ته هڪ يا وڌيڪ گارڊ ريل جي شرطن جي ڀڃڪڙي ڪئي وئي آهي.

نتيجي طور، ڊولپرز ۽ سيڪيورٽي ٽيمون ٻئي فوري طور تي بصيرت حاصل ڪن ٿيون ته ضم کي ڇو بلاڪ ڪيو ويو، بغير CI لاگ ۾ کوٽائي ڪرڻ جي.

حقيقي مثال کان Dashboard:

مثال طور، فرض ڪريو ته هڪ مخزن ۾ ڪا به محفوظ شاخون نه آهن، هڪ عام غلط ترتيب جيڪا ڊولپرز کي زور ڏيڻ جي اجازت ڏئي ٿي commitتصديق کان سواءِ. اهو هڪ سنگين خطرو آهي.

زائيگيني پاڻمرادو هن کي ڳولي ٿو ۽ نشان لڳائي ٿو a جي طور تي دستخط ٿيل_commits جي تحت مسئلو CI/CD ڪيٽيگري. جي dashboard نمايان:

  • شدت: هاء
  • قسم: سائن ڪيو Commits
  • وضاحت: مخزن ۾ ڪا به محفوظ شاخ ناهي.
  • اسٽيٽس کوليو

تنهن ڪري، هن حوالي سان ڀرپور موٽ سان، ٽيمون جلدي خطري جي سڃاڻپ ڪري سگهن ٿيون، ان جي اثر کي سمجهي سگهن ٿيون، ۽ اصلاحي ڪارروائي ڪري سگهن ٿيون، اهو سڀ ڪجهه Xygeni UI مان.

پنهنجي مرضي مطابق لاڳو ڪندڙ رويي

توهان هميشه ڪنٽرول ۾ آهيو. چونڊيو ته ڪيترو سخت Guardrails ڀيڻ گهرجي:

  • --fail-on=critical: بلاڪ صرف سخت نتيجن تي ضم ٿئي ٿو
  • --never-fail: هل Guardrails لاڳو ڪرڻ کان اڳ پاليسين کي جانچڻ لاءِ خشڪ رن موڊ ۾

تنهن ڪري ايندڙ ڀيري جڏهن توهان GitHub ۾ برانچ ٺاهيندا، ته توهان جو Guardrails اڳ ۾ ئي موجود آهن، توهان جي حفاظت ڪري رهيا آهن pipeline ۽ پنهنجون پاليسيون خودڪار طريقي سان لاڳو ڪرڻ.

مون کي ڪيئن خبر پوي ته GitHub ايپ محفوظ آهي؟

GitHub ايپس کي انسٽال ڪرڻ کان اڳ انهن جو جائزو وٺڻ سکو.

متعلق پڙهي:

4. جڏهن خطرا مليا ته GitHub ۾ ضم کي خودڪار طريقي سان منسوخ ڪريو.

جيڪڏهن خطرا معلوم ٿين ٿا، ته ضم منسوخ ڪيو ويندو آهي. هي حفاظتي اپاءُ هر برانچ GitHub پروجيڪٽ جي حفاظت ڪري ٿو ۽ GitHub ۾ شاخن کي ضم ڪرڻ جي بهترين طريقن کي لاڳو ڪري ٿو.

زائيگيني سڌو سنئون گٽ هب جي UI ۾ ضم ٿئي ٿو. جڏهن ڪو خطرو ملي ٿو:

  • GitHub چيڪ کي ناڪام ڏيکاري ٿو.
  • GitHub جي حفاظت ضم ٿيڻ کي روڪي ٿي
  • ضم ڪرڻ واري قطار غير محفوظ ڪوڊ کي ڇڏي ٿي.

ڇا اهو راز هجي، CVE هجي، يا خطرناڪ هجي CI/CD نموني، نتيجو ساڳيو آهي: جي GitHub ۾ ضم منسوخ ڪيو ويو آهي ۽ جائزي لاءِ نشان لڳايو ويو.

توهان Xygeni ۾ تفصيلي نتيجا پڻ ڏسي سگهو ٿا:

  • هر شاخ جي سيڪيورٽي حيثيت
  • ڇو هڪ ضم کي روڪيو ويو
  • مڪمل اسڪين تاريخ
  • پروجيڪٽ جي صفحي ۾ سائي (پاس) يا ڳاڙهي (ناڪام) آئڪن ذريعي گارڊ ريل جي حيثيت ڏيکاريل آهي.

هي بصري موٽ ڊولپرز ۽ سيڪيورٽي ٽيمن لاءِ اعتماد سان ڪارروائي ڪرڻ آسان بڻائي ٿي. ۽ جڏهن توهان کي گهري تناظر جي ضرورت آهي، ته هر مسئلو شدت، ٽيگ، مقام، ۽ گهٽتائي جي هدايتن سان دستاويزن سان ڳنڍيل آهي.

Tldr صرف اهو ضم ڪريو جيڪو محفوظ آهي

مختصر ڪرڻ لاءِ، هتي GitHub ۾ برانچ ٺاهڻ کان پوءِ محفوظ طريقي سان ضم ڪرڻ جو طريقو آهي:

  • UI ذريعي GitHub ۾ هڪ شاخ ٺاهيو
  • هر هڪ سان خودڪار اسڪين کي چالو ڪريو pull request زائيگيني سان 
  • غير محفوظ ضم کي بلاڪ ڪريو استعمال ڪندي Guardrails
  • وڌيڪ ڪنٽرول لاءِ سرور-سائڊ آڊٽ پاليسيون استعمال ڪريو
  • جڏهن ڪجهه ناڪام ٿئي ٿو ته GitHub ۾ ضم منسوخ ڪريو
  • زائيجيني ۾ سڀني نتيجن کي ڏسو dashboard

ذخيري جي حفاظت تي اضافي بهترين طريقن لاءِ، اسان جو پڙهو GitHub سيڪيورٽي FAQs: هر ڊولپر کي ڇا ڄاڻڻ گهرجي.

جيتوڻيڪ ضم ڪرڻ هڪ بنيادي آپريشن آهي، ان کي محفوظ طريقي سان ڪرڻ لاءِ حقيقي نمائش ۽ خودڪار جي ضرورت آهي. Xygeni سان، توهان صرف ڪوڊ کي ضم نه ڪندا آهيو، توهان اعتماد کي ضم ڪندا آهيو.

هر GitHub برانچ کي اعتماد سان محفوظ ڪريو

هڪ نظرانداز ڪيل مسئلو pull request توهان جي مکيه شاخ کي نقصان پهچائي سگھي ٿو. روايتي اسڪينر اڪثر دير سان هلندا آهن، نازڪ خطرن کي وڃائي ڇڏيندا آهن، يا بامعني پاليسيون لاڳو ڪرڻ ۾ ناڪام ٿيندا آهن.

اهو ئي سبب آهي ته توهان جي GitHub شاخن جي حفاظت صرف اسڪيننگ کان وڌيڪ وقت وٺندي آهي.

زائيگيني حقيقي نفاذ فراهم ڪري ٿو. جڏهن ڪو pull request هڪ محفوظ شاخ کي نشانو بڻائيندي، زائيگيني توهان جي تازي عملدرآمد جو تجزيو ڪري ٿو CI/CD ڪم جي وهڪري. اهو پوري شاخ کي ٻيهر اسڪين نٿو ڪري. ان جي بدران، اهو ڪوڊ، انحصار، راز، ۽ ڪم جي وهڪري جي ترتيبن ۾ سيڪيورٽي مسئلن جي جانچ ڪرڻ لاءِ تازين نتيجن جو جائزو وٺندو آهي. توهان کي صرف خبردار نه ڪيو ويندو آهي. توهان محفوظ آهيو.

ڇا ان کي مختلف بڻائي ٿو:

  • مڪمل حوالي سان تصديق: Guardrails شدت، استحصال، ۽ برانچ ميٽا ڊيٽا جهڙن امير تناظر کي استعمال ڪندي پاليسي لاڳو ڪريو.
  • بلٽ ان GitHub انٽيگريشن: اسڪيننگ کان وٺي انفورسمينٽ تائين هر شيءِ توهان جي GitHub ورڪ فلو اندر مقامي طور تي هلندي آهي، ڪسٽم اسڪرپٽ يا گلو ڪوڊ جي ضرورت کان سواءِ.
  • سرور-سائڊ آڊٽ: سرور-سائڊ Guardrails اپلوڊ کان پوءِ نتيجن جي تصديق ڪريو، ڪنٽرول جي هڪ ٻي پرت کي ٻاهر شامل ڪندي pipeline.

هر شيءِ کي پڪڙڻ لاءِ پنهنجي CI سيٽ اپ تي ڀروسو ڪرڻ بدران، Xygeni خودڪار، پاليسي تي ٻڌل ڊي لاڳو ڪري ٿوcisڪنهن به شيءِ جي توهان جي مکيه شاخ تائين پهچڻ کان اڳ آئن.

جيتوڻيڪ ضم ڪرڻ هڪ بنيادي آپريشن آهي، ان کي محفوظ طريقي سان ڪرڻ لاءِ حقيقي نمائش ۽ خودڪار جي ضرورت آهي. زائيگيني سان، توهان صرف پنهنجن ريپوز جي حفاظت نٿا ڪريو، توهان هر برانچ گٽ هب کي اعتماد سان محفوظ ڪريو ٿا.

اسڪا-ٽولز-سافٽ ويئر-ڪمپوزيشن-تجزيو-ٽولز
پنهنجي سافٽ ويئر خطرن کي ترجيح ڏيو، درست ڪريو، ۽ محفوظ ڪريو
پنهنجو مفت اڪائونٽ حاصل ڪريو.
ڪنهن به ڪريڊٽ ڪارڊ جي ضرورت نه آهي.

پنهنجي سافٽ ويئر ڊولپمينٽ ۽ پهچائڻ کي محفوظ بڻايو

زائيگيني پراڊڪٽ سوٽ سان