গিটহাবে কীভাবে একটি ব্রাঞ্চ তৈরি করতে হয় তা শেখা হলো প্রথম ধাপ। তবে, প্রতিটি ব্রাঞ্চের জন্য গিটহাবে নিরাপদে ব্রাঞ্চ মার্জ করার পদ্ধতি আয়ত্ত করাও ঠিক ততটাই গুরুত্বপূর্ণ। GitHub কর্মপ্রবাহ। তাই, এই পোস্টে আমরা আপনাকে সম্পূর্ণ প্রক্রিয়াটি ধাপে ধাপে দেখাবো, যা শুরু হবে... গিটহাবে কীভাবে একটি ব্রাঞ্চ তৈরি করবেন এবং তারপর আপনাকে দেখানো গিটহাবে কীভাবে ব্রাঞ্চ মার্জ করবেন নিরাপদে। আমরা আরও আলোচনা করব, কোনো সমস্যা পেলে কীভাবে একটি মার্জ বাতিল করতে হয়, এবং সবশেষে, কীভাবে Xygeni আপনার প্রধান শাখায় আসার আগেই প্রতিটি সমস্যা ধরতে সাহায্য করতে পারে।
চলুন বিষয়টি ধাপে ধাপে আলোচনা করা যাক।
১. গিটহাবে সঠিক উপায়ে কীভাবে একটি ব্রাঞ্চ তৈরি করবেন
গিটহাবে একটি ব্রাঞ্চ তৈরি করার মাধ্যমেই প্রতিটি সুরক্ষিত ওয়ার্কফ্লো শুরু হয়। এটি ডেভেলপারদের প্রোডাকশন কোডকে প্রভাবিত না করেই ফিচার, ফিক্স বা এক্সপেরিমেন্টগুলোকে আলাদা করতে সাহায্য করে।
গিটহাবে একটি ব্রাঞ্চ তৈরি করতে:
১. আপনার সংগ্রহস্থলে যান
২. শাখা নির্বাচক ড্রপডাউনে ক্লিক করুন
৩. আপনার নতুন শাখার নাম টাইপ করুন।
4। ক্লিক শাখা তৈরি করুন
এখান থেকে, আপনার নতুন ব্রাঞ্চটি ব্যবহারের জন্য প্রস্তুত। আপনি এখন কোড পুশ করতে, পরিবর্তনগুলিতে সহযোগিতা করতে এবং অবশেষে একটি ওপেন অ্যাকাউন্ট খুলতে পারবেন। pull requestযদিও এটি গিটহাবের একটি সাধারণ পদক্ষেপ, এটি নিরাপদ উন্নয়নের ভিত্তি স্থাপন করে।
গুরুত্বপূর্ণ বিষয় হলো, গিটহাবে প্রতিবার ব্রাঞ্চ তৈরি করার সময়, সেটি একটি পুনরাবৃত্তিযোগ্য এবং সুরক্ষিত ওয়ার্কফ্লোর অংশ হওয়া উচিত।
2. স্ক্যান Pull Requests মার্জ করার আগে স্বয়ংক্রিয়ভাবে
যখন আপনি গিটহাবে একটি ব্রাঞ্চ তৈরি করেন এবং পর্যালোচনার জন্য প্রস্তুত হন, তখন পরবর্তী ধাপ হলো গিটহাবে কীভাবে নিরাপদে ব্রাঞ্চ মার্জ করতে হয় তা বোঝা। প্রতিটি ব্রাঞ্চ গিটহাব পুশ স্বয়ংক্রিয় চেক চালু করবে। কিন্তু মার্জ করার আগে, এটি অপরিহার্য যে... যাচাই যে কোডটি কোনো দুর্বলতা সৃষ্টি করে না। একটি একক অনিরাপদ commit আপনার অ্যাপ্লিকেশনটি প্রকাশ করতে পারে, leak secretঅথবা গুরুত্বপূর্ণ অবকাঠামো ভেঙে ফেলতে পারে।
আপনার প্রধান শাখায় কোড মার্জ করা একটি অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া। যথাযথ যাচাই ব্যবস্থা না থাকলে, এর ফলে নিম্নলিখিত গুরুতর পরিণতিগুলো ঘটতে পারে:
- জিরো-ডে দুর্বলতা উৎপাদনে পিছলে যাচ্ছে
- পরিচিত সিভিই ওপেন সোর্স প্যাকেজের মাধ্যমে চালু করা হয়েছে
- হার্ডকোডেড গোপনীয়তা রিপোজিটরিতে পুশ করা হয়েছে
- অবকাঠামোগত ভুল কনফিগারেশন যেগুলো আপনার প্রতিরক্ষা ব্যবস্থা দুর্বল করে দেয়
- ক্ষতিকারক বা বিকৃত কোড নির্ভরতার মাধ্যমে প্রবেশ করা
এইখানেই জাইজেনি প্রকৃত পার্থক্য গড়ে তোলে।
ব্যবহার করে গিটহাব অ্যাকশনআপনি ট্রিগার করতে পারেন স্বয়ংক্রিয় জাইজেনি স্ক্যান যখনই একজন ডেভেলপার একটি খোলে pull request একটি সুরক্ষিত শাখায়। গিটহাবে একটি সুরক্ষিত শাখা হলো এমন একটি শাখা, যেখানে পরিবর্তনগুলি মার্জ করার আগে নির্দিষ্ট যাচাই বা অনুমোদনের প্রয়োজন হয়।
জাইজেনি বিশ্লেষণ করে সর্বশেষ মৃত্যুদণ্ড pull request কর্মপ্রবাহ প্রস্তাবিত পরিবর্তনগুলোর নিরাপত্তা পরিস্থিতি যাচাই করা। এর মধ্যে অন্তর্ভুক্ত রয়েছে নিম্নলিখিত বিষয়গুলো পরীক্ষা করা: কোডের সমস্যা, নির্ভরতা, গোপনীয় তথ্য, এবং CI/CD কনফিগারেশনেরসম্পূর্ণ ব্রাঞ্চটি পুনরায় স্ক্যান করা হয় না, বরং নীতিমালা প্রয়োগ করতে এবং অনিরাপদ মার্জ ব্লক করতে সর্বশেষ ওয়ার্কফ্লো ফলাফলটি ব্যবহার করা হয়।
এই স্ক্যানগুলো যাচাই করে যে কোডটি নিরাপদ এবং প্রোডাকশনের জন্য প্রস্তুত। এগুলো শনাক্ত করে:
- কোডের দুর্বলতা (SAST)
- ঝুঁকিপূর্ণ ওপেন সোর্স প্যাকেজ (SCA)
- হার্ডকোডেড গোপনীয়তা
- IaC ভুল কনফিগারেশন
- সম্ভাব্য ম্যালওয়্যার
একীভূত এই প্রাথমিক যাচাইগুলি নিশ্চিত করে যে প্রতিবার আপনি গিটহাবে একটি ব্রাঞ্চ তৈরি করার সময় এবং মার্জ করার প্রস্তুতি নেওয়ার সময়, আপনি এটি করেন সম্পূর্ণ দৃশ্যমানতা এবং নিয়ন্ত্রণ.
এখানে একটি সরলীকৃত বিন্যাস দেওয়া হল:
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 }} ৩. অনিরাপদ একীভূতকরণ ব্লক করুন Guardrails
Guardrailsনিশ্চিত করুন যে, যখন আপনি গিটহাবে একটি ব্রাঞ্চ তৈরি করেন বা ব্রাঞ্চ মার্জ করার চেষ্টা করেন, তখন যেন শুধুমাত্র নিরাপদ পরিবর্তনগুলোই আপনার মূল ব্রাঞ্চে পৌঁছায়। জাইজেনি আপনাকে কী একত্রিত হবে তার উপর সম্পূর্ণ নিয়ন্ত্রণআপনি পূর্ব-সংজ্ঞায়িত করতে পারেন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
সম্পূর্ণ স্বচ্ছতা নিশ্চিত করতে, জাইজেনি গার্ডরেল স্ট্যাটাসের সর্বশেষ মূল্যায়নের ফলাফল প্রদর্শন করে।
- প্রথম সবসবুজ আইকনটির অর্থ হলো সকল নীতিমালা পাস হয়েছে।
- বিপরীতেএকটি লাল আইকন নির্দেশ করে যে এক বা একাধিক গার্ডরেল শর্ত লঙ্ঘিত হয়েছে।
এর ফলে, সিআই লগ খতিয়ে না দেখেই ডেভেলপার এবং নিরাপত্তা দল উভয়ই তাৎক্ষণিকভাবে জানতে পারে কেন একটি মার্জ আটকে দেওয়া হয়েছিল।
বাস্তব উদাহরণ থেকে Dashboard:
উদাহরণস্বরূপ, ধরা যাক একটি রিপোজিটরিতে কোনো সুরক্ষিত ব্রাঞ্চ নেই, যা একটি সাধারণ ভুল কনফিগারেশন এবং এর ফলে ডেভেলপাররা পুশ করতে পারে। commitযাচাই-বাছাই ছাড়া। এটা একটা গুরুতর ঝুঁকি।
Xygeni স্বয়ংক্রিয়ভাবে এটিকে শনাক্ত করে এবং চিহ্নিত করে। স্বাক্ষরিত_commits এর অধীনে সমস্যা CI/CD বিভাগ দ্য dashboard হাইলাইট:
- নির্দয়তা: উচ্চ
- প্রকার: সাইন ইন Commits
- ব্যাখ্যা: রিপোজিটরিতে কোনো সুরক্ষিত শাখা নেই
- স্থিতি: খোলা
সুতরাং, এই তথ্যসমৃদ্ধ ফিডব্যাকের মাধ্যমে টিমগুলো Xygeni UI থেকেই দ্রুত ঝুঁকি শনাক্ত করতে, এর প্রভাব বুঝতে এবং প্রতিকারমূলক ব্যবস্থা নিতে পারে।
কাস্টমাইজ করুন প্রয়োগ আচরণ
সর্বদাই নিয়ন্ত্রণে আপনি। কতটা কঠোর হবেন তা বেছে নিন। Guardrails হতে হবে:
--fail-on=critical: শুধুমাত্র গুরুতর অনুসন্ধানের ভিত্তিতে ব্লক একত্রিত করা হয়।--never-fail: চালান Guardrails নীতিমালা কার্যকর করার আগে তা পরীক্ষা করার জন্য পরীক্ষামূলক পর্যায়ে
সুতরাং পরের বার যখন আপনি গিটহাবে একটি ব্রাঞ্চ তৈরি করবেন, আপনার Guardrails ইতিমধ্যে সেখানে আছে, আপনার সুরক্ষায় pipeline এবং আপনার নীতিমালাগুলো স্বয়ংক্রিয়ভাবে প্রয়োগ করা।
আমি কীভাবে জানব যে একটি গিটহাব অ্যাপ নিরাপদ কিনা?
গিটহাব অ্যাপ ইনস্টল করার আগে কীভাবে সেগুলোর মূল্যায়ন করতে হয়, তা জেনে নিন।
৪. ঝুঁকি পাওয়া গেলে গিটহাবে স্বয়ংক্রিয়ভাবে মার্জ বাতিল করুন
ঝুঁকি শনাক্ত হলে, মার্জটি বাতিল করা হয়। এই সুরক্ষা ব্যবস্থাটি গিটহাব প্রজেক্টের প্রতিটি ব্রাঞ্চকে সুরক্ষিত রাখে এবং গিটহাবে ব্রাঞ্চ মার্জ করার সর্বোত্তম পদ্ধতি প্রয়োগ করে।
জাইজেনি সরাসরি গিটহাবের ইউআই-এর সাথে সংযুক্ত হয়। যখন কোনো ঝুঁকি খুঁজে পাওয়া যায়:
- গিটহাব চেকটি ব্যর্থ হিসেবে দেখাচ্ছে।
- গিটহাবের সুরক্ষা ব্যবস্থা মার্জ হতে বাধা দেয়।
- মার্জ কিউ অনিরাপদ কোড এড়িয়ে যায়।
সেটা গোপন, CVE, বা বিপজ্জনক যাই হোক না কেন CI/CD প্যাটার্ন, ফলাফল একই: গিটহাবে মার্জ বাতিল করা হয়েছে এবং পর্যালোচনার জন্য চিহ্নিত করা হয়েছে।
আপনি Xygeni-তেও বিস্তারিত ফলাফল দেখতে পারেন:
- প্রতিটি শাখার নিরাপত্তা অবস্থা
- কেন একটি একত্রীকরণ আটকে দেওয়া হয়েছিল
- সম্পূর্ণ স্ক্যান ইতিহাস
- প্রজেক্ট পেজে সবুজ (পাস) বা লাল (ফেল) আইকনের মাধ্যমে গার্ডরেলের অবস্থা দেখানো হয়।
এই ভিজ্যুয়াল ফিডব্যাক ডেভেলপার এবং নিরাপত্তা দলগুলোকে আত্মবিশ্বাসের সাথে পদক্ষেপ নিতে সাহায্য করে। আর যখন আরও গভীর প্রেক্ষাপটের প্রয়োজন হয়, তখন প্রতিটি ইস্যুর সাথে ডকুমেন্টেশনের লিঙ্ক দেওয়া থাকে, যেখানে তার তীব্রতা, ট্যাগ, অবস্থান এবং প্রতিকারের নির্দেশনা দেওয়া থাকে।
সংক্ষেপে: শুধু নিরাপদ বিষয়গুলোই একীভূত করুন।
সংক্ষেপে, গিটহাবে একটি ব্রাঞ্চ তৈরি করার পর নিরাপদে মার্জ করার পদ্ধতি নিচে দেওয়া হলো:
- UI এর মাধ্যমে GitHub-এ একটি ব্রাঞ্চ তৈরি করুন
- প্রতিটির সাথে স্বয়ংক্রিয় স্ক্যান চালু করুন pull request জাইজেনির সাথে
- অনিরাপদ মার্জ ব্লক করুন Guardrails
- আরও গভীর নিয়ন্ত্রণের জন্য সার্ভার-সাইড অডিট নীতি ব্যবহার করুন।
- কোনো কিছু ব্যর্থ হলে গিটহাবে মার্জ বাতিল করুন
- Xygeni-তে সমস্ত ফলাফল দেখুন dashboard
রিপোজিটরি সুরক্ষার বিষয়ে আরও সেরা অনুশীলন জানতে, আমাদের পড়ুন। গিটহাব নিরাপত্তা বিষয়ক সাধারণ জিজ্ঞাসা: প্রত্যেক ডেভেলপারের যা জানা উচিত.
যদিও মার্জিং একটি সাধারণ কাজ, এটিকে নিরাপদে করার জন্য প্রয়োজন প্রকৃত দৃশ্যমানতা এবং অটোমেশন। Xygeni-এর মাধ্যমে আপনি শুধু কোডই মার্জ করেন না, আপনি বিশ্বাসও মার্জ করেন।
আত্মবিশ্বাসের সাথে প্রতিটি গিটহাব ব্রাঞ্চ সুরক্ষিত করুন
একটি উপেক্ষিত সমস্যা pull request আপনার প্রধান শাখাকে ঝুঁকিতে ফেলতে পারে। প্রচলিত স্ক্যানারগুলো প্রায়শই অনেক দেরিতে কাজ করে, গুরুতর ঝুঁকি ধরতে পারে না, অথবা অর্থবহ নীতিমালা প্রয়োগ করতে ব্যর্থ হয়।
এই কারণেই আপনার গিটহাব ব্রাঞ্চগুলোকে সুরক্ষিত রাখতে শুধু স্ক্যান করার চেয়েও বেশি কিছু প্রয়োজন।
জাইজেনি বাস্তব প্রয়োগ নিশ্চিত করে। যখন একটি pull request একটি সুরক্ষিত শাখাকে লক্ষ্য করে, Xygeni আপনার সর্বশেষ এক্সিকিউশন বিশ্লেষণ করে। CI/CD ওয়ার্কফ্লো। এটি পুরো ব্রাঞ্চটি পুনরায় স্ক্যান করে না। পরিবর্তে, এটি কোড, ডিপেন্ডেন্সি, সিক্রেট এবং ওয়ার্কফ্লো কনফিগারেশনে নিরাপত্তাজনিত সমস্যা আছে কিনা তা পরীক্ষা করার জন্য সবচেয়ে সাম্প্রতিক ফলাফলগুলো মূল্যায়ন করে। আপনাকে শুধু সতর্কই করা হয় না, আপনি সুরক্ষিতও থাকেন।
কি এটা ভিন্ন করে তোলে:
- পূর্ণ-প্রসঙ্গ যাচাইকরণ: Guardrails সেভিয়ারিটি, এক্সপ্লয়টেবিলিটি এবং ব্রাঞ্চ মেটাডেটার মতো সমৃদ্ধ কনটেক্সট ব্যবহার করে পলিসি প্রয়োগ করুন।
- অন্তর্নির্মিত গিটহাব ইন্টিগ্রেশন: স্ক্যানিং থেকে শুরু করে প্রয়োগ পর্যন্ত সবকিছু আপনার গিটহাব ওয়ার্কফ্লোর মধ্যেই স্বাভাবিকভাবে চলে, এর জন্য কোনো কাস্টম স্ক্রিপ্ট বা গ্লু কোডের প্রয়োজন হয় না।
- সার্ভার-সাইড অডিট: সার্ভার-সাইড Guardrails আপলোডের পরে ফলাফল যাচাই করুন, যা বাইরে নিয়ন্ত্রণের একটি দ্বিতীয় স্তর যোগ করে। pipeline.
সবকিছু ধরার জন্য আপনার CI সেটআপের উপর নির্ভর করার পরিবর্তে, Xygeni স্বয়ংক্রিয়, নীতি-ভিত্তিক ডিটেকশন পদ্ধতি প্রয়োগ করে।cisআপনার প্রধান শাখায় কিছু পৌঁছানোর আগেই আয়নসমূহ।
যদিও মার্জিং একটি সাধারণ কাজ, এটিকে নিরাপদে করার জন্য প্রয়োজন প্রকৃত দৃশ্যমানতা এবং অটোমেশন। Xygeni-এর মাধ্যমে আপনি শুধু আপনার রিপোজিটরিগুলোকেই সুরক্ষিত করেন না, বরং আত্মবিশ্বাসের সাথে GitHub-এর প্রতিটি ব্রাঞ্চকেও সুরক্ষিত করেন।




