আগের Forking and Pull Requests lesson সরাসরি access ছাড়া contribute করা কভার করেছে — একটা public project-এ অপরিচিতদের সাথে কাজ করার standard উপায়। একজন collaborator ভিন্ন: কাউকে repository-তেই সরাসরি push করার জন্য সরাসরি write access দেওয়া।
একটা repository-র Settings → Collaborators and teams → "Add people" থেকে, তাদের GitHub username বা email দিয়ে search করে। তারা একটা invitation পায়, যা access কার্যকর হওয়ার আগে accept করা দরকার।
| Level | যা করতে পারে |
|---|---|
| Read | Repository দেখা আর clone করা, issue/PR-এ comment করা |
| Triage | Read, প্লাস কোড-এ write access ছাড়া issue আর PR manage করা |
| Write | Read/Triage, প্লাস non-protected branch-এ সরাসরি push, আর PR merge করা |
| Maintain | Write, প্লাস পূর্ণ admin access ছাড়া কিছু repository setting manage করা |
| Admin | পূর্ণ নিয়ন্ত্রণ, repository delete করা বা কার access আছে তা বদলানো সহ |
| সরাসরি Collaborator Access | Fork ও Pull Request |
|---|---|
| একই private বা public project-এ কাজ করা একটা ছোট, বিশ্বস্ত team | যে কারো contribution accept করা একটা open-source project |
| দ্রুত — সরাসরি একটা branch-এ push, কোনো fork দরকার নেই | প্রতি contribution-এ ধীর, কিন্তু আসল repository সম্পূর্ণ নিয়ন্ত্রিত রাখে |
| আসল write access সহ কাউকে বিশ্বাস করা দরকার | Maintainer যে কারো থেকে যোগ হওয়ার আগে প্রতিটা পরিবর্তন review করে |
Collaborator যোগ করা থাকলেও, একটা branch protection rule দাবি করতে পারে প্রতিটা পরিবর্তন — এমনকি Write access সহ একজন collaborator থেকেও — main-এ merge হওয়ার আগে একটা pull request-এর মধ্য দিয়ে যেতে আর check pass করতে, সরাসরি push অনুমতি দেওয়ার বদলে।
একটা common বাস্তব setup
একটা branch protection rule দিয়ে বিশ্বস্ত collaborator থেকেও pull request দাবি করা আসল project-এ standard practice — সরাসরি push access থাকলেও এটা একটা review step আর একটা পরিষ্কার history রাখে।