# სამუშაო გარემოს მოწყობა და Code Review-ს სისტემა

Code Review-ს გაკეთება მრავალნაირად შეიძლება. ერთ-ერთი მიდგომა რაც ვნახეთ, რომ ამართლებს და კარგ მოქნილ სისტემას წარმოადგენს არის Code Review გიტჰაბ იშუების საშუალებით.

ძირითადი სქემა ასეთია Reviewer ნახულობს კოდს, პოულობს ხარვეზს, გიტჰაბზე ქმნის issue-ს და დეველოპერი ასწორებს ხარვეზს.

## Github Issues და Github Project

Github-ს უკვე ძალიან კარგი საშუალება აქვს task/project მენეჯმენტისთვის. ჩვენ Code Review-სთვის გამოვიყენებთ გიტჰაბის 2 ფუნქციონალს:

* Github Issues
* Github Project

**Github Issue** წარმოადგენს გასაკეთებელ საქმეს - ეგრედწოდებული თასქი. Issue შეიძლება იყოს სხვადასხვა ტიპის: ჩვეულებრივი თასქი, ბაგი და ა.შ. რომლის განსაზღვრაც ტეგებით შეგვიძლია.

**Github Project** კი საშუალებას გვაძლევს ზემოხსენებული **Issue**-ები დავაორგანიზოთ, ისე როგორც მაგალითად ჯირაში ან ასანაში შეგვიძლია.

## რეპოზიტორიაში Github Project-ის შექმნა

რეპოზიტორიაში მოვნახოთ სექცია Project და გადავიდეთ ამ სექციაზე:

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2FMtT7oYKqmhAnm0Cry5e8%2Fimage.png?alt=media\&token=9d5e2f7e-0e2e-4048-bc70-52cbdc6a4afb)

დავაიგნოროთ `Projects` ის ბეტა ვერსია და გადავიდეთ ძირითად `Projects` სექციაზე სადაც დაგვხვდება ღილაკი `New Project`:

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2FgRMqA2sH2XMYcQhDbINi%2Fimage.png?alt=media\&token=b121fce3-22a4-400c-8ba0-d54ae068ec45)

დავაჭიროთ ღილაკს `New Project`, დავარქვათ პროექტს შესაბამისი სახელი. თემფლეითის არჩევა არ გვჭირდება. დავაჭიროთ ღილაკს `Create Project` :

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2FVMme8NYL4l4XGTH67zoA%2Fimage.png?alt=media\&token=67728b1f-2506-42bc-89d6-90c8bbe70fd1)

შემდგომ გადავალთ პროექტის გვერდზე სადაც უნდა შევქმნათ სვეტები:&#x20;

* To Do(გასაკეთებელი საქმე)
* In Progress(ამ მომენტში აკეთებს დეველოპერი)
* Ready4Testing(დეველოპერმა შეასრულა საქმე და ატვირთულია გიტჰაბზე)
* Done(Reviewer-მა გადახედა დეველოპერის გაკეთებულ საქმეს და გადაიტანა Done-ში)

ამჟამად ჩვენი გიტჰაბის პროექტი ასე გამოიყურება:&#x20;

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2F7vrvaUvh8pp1XV0zmfCy%2Fimage.png?alt=media\&token=4a0ff359-cc63-4e5a-9609-d56169e5cd11)

ასევე კარგი იქნება To Do-ს და Done-ს თუ დავუმატებთ გიტჰაბის მიერ მოწოდებულ ავტომატიზაციის მექანიზმებს:

* როდესაც Issue შეიქმნება და მიესადაგება პროექტი, მაშინათვე ჩავარდეს ეს Issue To Do ლისტში
* როდესაც Issue ჩაიხურება მაშინათვე გადავარდეს Done-ში

ვნახოთ To Do სვეტის პარამეტრები, დავაჭიროთ ღილაკს `Manage Automation` :&#x20;

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2Fu22UfCpdhw9FAx1NiEhT%2Fimage.png?alt=media\&token=cec5d984-fea0-47e4-b5ea-4f5547178d0c)

Preset-დან ავირჩიოთ To Do და მოვნიშნოთ **Newly Added** და **Reopened** ჩექბოქსები. შემდეგ კი დავაჭიროთ ღილაკს **Update automation**:

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2FsD7mDqHBONqQKrbtwQWA%2Fimage.png?alt=media\&token=01c5e1b4-7107-4811-9fb7-b82c845b3009)

ახლა ვნახოთ Done სვეტის პარამეტრები. Preset-დან ავირჩიოთ Done და მოვნიშნოთ შექბოქსი closed, და შევინახოთ ცვლილებები:

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2FpGWzFHJvJtWgWCFWeATn%2Fimage.png?alt=media\&token=3b536216-263f-4f96-87e6-aae07c72cb6f)

## Issue-ს დამატება

იმისათვის, რომ დავამატოთ Issue - გადავიდეთ რეპოზიტორიის Issues განყოფილებაზე და დავაჭიროთ ღილაკს **new issue**

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2FzAW4pDuQrfpnYYBbLsWO%2Fimage.png?alt=media\&token=e54d0ed5-ff6a-4dea-8231-51fe69f21219)

ვნახავთ, რომ შეგვიძლია კონკრეტული ველები გავუწეროთ Issue-ს:

* სახელი
* აღწერა
* მივანიჭოთ დეველოპერს
* მივანიჭოთ პროექტი
* მივანიჭოთ Issue-ს ტეგი(ბაგი, გაუმჯობესება, დოკუმენტაცია და ა.შ.)

და კიდევ სხვა ველებიც.

აუცილებელია, რომ სახელი, დეველოპერზე მიბმა, პროექტზე მიბმა და ტეგი ჰქონდეს issue-ს, რომ გაურკვევლობა არ გამოიწვიოს და იკვეთებოდეს რა სახის Issue-ა

<mark style="color:red;">**! პროექტი აუცილებელია, რომ issue-ს მიებას, რათა პროექტში ჩავარდეს To Do ლისტში. სხვა შემთხვევაში მხოლოდ issue-ების განყოფილებაში იქნება**</mark>

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2F3BJCQ0nZ6ZIotdqW5Fod%2Fimage.png?alt=media\&token=1e2453d9-dbcf-4b8d-afb5-626d6fda0d0e)
