Code Owners: فیچری از گیت‌هاب به‌ منظور مشخص‌سازی دیگر دولوپرها جهت بررسی سورس‌کد

Code Owners: فیچری از گیت‌هاب به‌ منظور مشخص‌سازی دیگر دولوپرها جهت بررسی سورس‌کد

گرچه بررسی سورس‌کد برای هر پروژهٔ موفقی لازم و ضروری می‌باشد، اما این در حالی است که حتی با کمک دولوپرهای پیشنهادی گیت‌هاب، همیشه مشخص نیست که چه کسی سور‌س‌کد پروژه‌ای خاص را بررسی می‌کند اما این در حالی است که صاحبان ریپازیتوری‌های گیت‌هاب می‌توانند با استفاده قابلیتی تحت عنوان Code Owners، دقیقاً مشخص کنند چه کسانی و یا چه تیم‌هایی می‌توانند پروژهٔ مد نظر شما را بررسی کنند.

اولین کسی باشید که به این سؤال پاسخ می‌دهید

برای مشخص کردن Code Owner، در دایرکتوری ریشهٔ ریپازیتوری، یک فایل با نام CODEOWNERS و با ساختار زیر ایجاد کنید:

# Lines starting with '#' are comments.
# Each line is a file pattern followed by one or more owners.

# These owners will be the default owners for everything in the repo.
*       @defunkt

# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners
# will be requested to review.
*.js    @octocat @github/js

# You can also use email addresses if you prefer.
docs/*  docs@example.com

این ویژگی هر زمانی‌ که در یک Pull Request فایلی تغییر کند، به‌ صورت خودکار از افراد مورد نظر درخواست بررسی فایل‌های مشخصی را می‌کند (اگر قبلاً از gitattributes استفاده کرده باشید، شاید این ساختار برای شما آشنا باشد) با انجام دادن این کار، هرگاه در یک Pull Request فایلی تغییر کند، به‌ صورت خودکار افراد مشخصی به‌ عنوان Code Owner برای بررسی سورس‌کد در نظر قرار خواهند گرفت.

همچنین برای پروژه‌هایی با پروسهٔ بررسی دقیق‌‌تر از یکسو و همچنین افزایش امنیت کار از سوی دیگر، گزینه‌ای تحت‌ عنوان Protected Branch اضافه شده است که برای اطمینان از این موضوع است که افراد مورد نظر فرصتی برای بررسی داشته باشند که با فعال کردن گزینهٔ Protected Branch، قبل از اینکه کسی بتواند یک Pull Request را به آن بِرنچ مِرج کند، برای هر فایلی که در لیست Code Owners است، افراد تعیین‌شده حتماً باید از قبل سورس‌کد را بررسی کرده باشند.

روی هم رفته، گیت‌هاب در نظر دارد با این کار پروسهٔ بررسی سورس‌کد پروژه‌های اشتراک‌گذاری شده در این پلتفرم بیش از گذشته تأثیرگذار گردد. 

منبع