آمنوتجیکارا
آمنوتجیکارا
خواندن ۶ دقیقه·۳ سال پیش

ایجاد قالب های جدید مبتنی بر فرم برای Issue های گیتهاب

اگر شخصی مشکلی را شناسایی کند یا یک ویژگی را برای یکی از محصولات درخواست کند، یک Issue را در مخزن مربوطه باز می کند. هنگام بررسی باگ ها، دانستن اطلاعات مانند نسخه سیستم عامل، نسخه نرم افزار مفید است. این باعث می شود که توسعه دهنده بتواند مشکل ایجاد شده را دوباره ایجاد کند (جهت شناسایی منبع مشکل) و در نتیجه رفع آن بسیار سریعتر شود. بنابراین با کمک قالب ها می‌توانید انواع ورودی، اعتبارسنجی و برچسب‌های پیش‌فرض را برای فرم‌های خود تعریف کنید.

نیاز سنجی

ابتدا باید خوب فکر کنید که برای گزارش یک مشکل به چه اطلاعاتی نیاز دارید. من برای مخزن WindowsAppSDK مایکروسافت موارد زیر را در نظر گرفتم:

  • نسخه سیستم عامل
  • نسخه ناگت WASDK
  • نوع پروژه (پکیج شده، غیر پکیج)
  • نسخه IDE

فرم Issue چگونه کار می کند؟

فرم های Issue به زبان YAML نوشته میشوند که به راحتی قابل درک است. فرم ها ساختار خاصی دارند که باید از آن پیروی کنید. هر فرم باید شامل یک نام، توضیحات، عنوان و برچسب باشد و یک عنصر body که ورودی‌های اصلی در آن قرار می‌گیرند.

یک فرم گزارش بسازیم!

انواع ورودی های مجاز عبارتند از: markdown, dropdown, checkbox, textarea (جعبه متن، لیست کشویی (کمبوباکس)، چک باکس و مارک داون)

فرم ها باید در پوشه .github/ISSUE_TEMPLATE در مخزن شما قرار گیرند.

این الگو با یک بلوک علامت‌گذاری کوچک شروع می‌شود: ما می‌خواهیم کاربران را تشویق کنیم تا قبل از ایجاد هر گونه مشکل جدید ابتدا آن را در مسائل موجود جستجو کنند تا از مشکلات تکراری جلوگیری کنیم.

برای شروع ابتدا تمپلت پیشفرض را برای مخزن موردنظر ایجاد کنید. (اگر قبلا تمپلت ایجاد کرده اید میتوانید این مراحل را رد کنید.)

  1. ابتدا به تنظیمات مخزن بروید و روی Set up templates کلیک کنید.

2. تمپلت موردنظر را انتخاب کنید ما اینجا گزنیه اول bug report را انتخاب میکنیم.

3. حالا روی گزینه Propose changes کلیک کنید. (قبل از ثبت تغییرات میتوانید تمپلت را با زدن گزینه Preview and edit ویرایش کنید. من ترجیح میدهم بعد از ایجاد آن را ویرایش کنم)

4. تغییرات را کامیت کنید

5.حالا میرویم سراغ فایل تمپلت پیشفرضی که ایجاد شده و آن را ویرایش میکنیم. (به مسیر فایل دقت کنید.)

6.نکته ای که باید دقت کنید، شما اول باید پسوند فایل را از md به yaml تغییر بدهید. محتوای فایل را کامل پاک کنید.

7. بسیار خوب حالا نوبت به نوشتن قالب دلخواهمان رسیده است. اول از همه باید ویژگی های پیشفرض را مشخص کنیم:

name: Bug report description: File a bug report title: &quotBug title&quot labels: [] body:

مهم ترین ویژگی قسمت body است که باید فرم دلخواهمان را داخلش ایجاد کنیم.

ابتدا از کاربر توضیح اشکال و مراحل بازتولید را می‌خواهیم. اینها را می توان در ورودی متنی نوشت.

- type: markdown attributes: value: | For bugs related to WinUI, please open a bug on the [Microsoft.UI.Xaml repository](https://github.com/microsoft/microsoft-ui-xaml) - type: textarea validations: required: true attributes: label: Describe the bug description: Please enter a short, clear description of the bug. - type: textarea validations: required: true attributes: label: Steps to reproduce the bug description: Please provide any required setup and steps to reproduce the behavior. placeholder: | 1. Go to '...' 2. Click on '....' - type: textarea attributes: label: Expected behavior description: Please provide a description of what you expected to happen - type: textarea attributes: label: Screenshots description: If applicable, add screenshots here to help explain your problem

با کلمه type نوع ورودی مشخص میشود،هر ورودی شامل یک attributes است که میتوانیم لیبل، متن PlaceHolder (در صورت خالی بودن ورودی این متن نمایش داده میشود) و توضیحات مربوط به ورودی را اضافه کنیم. در قسمت validations اجباری یا اختیاری بودن ورودی مشخص میشود. در صورت اجباری بودن ورودی، تا زمانی که کاربر ورودی موردنظر را پر نکند امکان ایجاد Issue را نخواهد داشت.

در پایان باید اطلاعات نیازسنجی شده را از کاربر دریافت کنیم. با توجه به اطلاعات موردنیاز میتوانید از انواع ورودی، لیست کشویی (تک انتخابی، چند انتخابی) و چک باکس استفاده کنید.

- type: dropdown attributes: label: IDE description: Which IDE do you use? multiple: true options: - &quotVisual Studio 2022-preview&quot - &quotVisual Studio 2022&quot - &quotVisual Studio 2019&quot - &quotVisual Studio 2017&quot - &quotOther&quot - type: dropdown attributes: label: NuGet package version options: - &quotMicrosoft.WindowsAppSDK 1.0.0-preview3&quot - &quotMicrosoft.WindowsAppSDK 1.0.0-preview2&quot - &quotMicrosoft.WindowsAppSDK 1.0.0-preview1&quot - &quotMicrosoft.WindowsAppSDK 1.0.0-experimental1&quot - &quotMicrosoft.ProjectReunion 0.8.5&quot - &quotMicrosoft.ProjectReunion 0.8.4&quot - &quotMicrosoft.ProjectReunion 0.8.3&quot - &quotMicrosoft.ProjectReunion 0.8.2&quot - &quotMicrosoft.ProjectReunion 0.8.1&quot - &quotMicrosoft.ProjectReunion 0.8.0&quot - type: checkboxes attributes: label: Project type description: Please specify project type you have encountered the issue. options: - label: &quotPackaged&quot - label: &quotUnpackaged&quot - type: dropdown attributes: label: Windows version description: Which Windows versions did you see the issue on? multiple: true options: - &quotInsider Build (xxxxx)&quot - &quotWindows 11 (22000)&quot - &quotMay 2021 Update (19043)&quot - &quotOctober 2020 Update (19042)&quot - &quotMay 2020 Update (19041)&quot - &quotNovember 2019 Update (18363)&quot - &quotMay 2019 Update (18362)&quot - &quotOctober 2018 Update (17763)&quot - &quotApril 2018 Update (17134)&quot - &quotFall Creators Update (16299)&quot - &quotCreators Update (15063)&quot

در نهایت روی کامیت کلیک کنید تا تغییرات ثبت شود.

حال یک issue جدید ایجاد کنید. تا فرم ثبت گزارش خود را مشاهده کنید.



کدهای کامل را میتوانید در این پول ریکوئست مشاهده کنید.

برنامه نویسیگیتهابgithub
شاید از این پست‌ها خوشتان بیاید