Repozitoriya (ing. Repository) — proqram təminatının mənbə kodunu, sənədlərini, resurslarını və tarixçəsini saxlamaq üçün istifadə olunan bir yerdir.[1] Repo (qısa adı ilə) həm komanda şəklində işləmək üçün kodu ortaq saxlama məkanı kimi, həm də kodun müxtəlif versiyalarını izləmək üçün istifadə olunur. Kod repo-ları (məsələn, GitHub, GitLab, Bitbucket və s.) proqram inkişafı prosesində çox vacib bir rola malikdir.[2]
Əsas xüsusiyyətləri
- Versiya nəzarəti (ing. Version Control)
- Repo-larda proqram təminatının müxtəlif versiyalarını izləmək mümkündür. Bu, hər bir dəyişikliyin kim tərəfindən və nə vaxt edildiyini bilmək üçün vacibdir.[3]
- Kodun əvvəlki versiyalarına qayıtmaq, dəyişiklikləri müqayisə etmək və tarixçəyə baxmaq imkanı verir.
- Şaxələndirmə (ing. Branching)
- Repozitoriyada şaxələndirmə (ing. branching) xüsusiyyəti ilə layihənin müxtəlif xüsusiyyətləri və ya yeniləmələri üzərində paralel işləmək mümkündür.
- Şaxələr (ing. branches) layihənin fərqli versiyalarıdır və əsas (ing. main/master) şaxəyə birləşdirilə bilər.
- Birlikdə İşləmə (ing. Collaboration)
- Repozitoriyalar komanda ilə işləmək üçün ideal məkan yaradır. İnkişafçılar dəyişiklikləri push və pull edərək eyni layihə üzərində işləyə bilirlər.
- Kodu nəzərdən keçirmək, şərhlər əlavə etmək və dəyişikliklər etmək üçün müxtəlif icazələr və alətlər mövcuddur.
- İcazə nəzarəti (ing. Access Control)
- Repozitoriyalarda istifadəçilərin müxtəlif səviyyələrdə icazələri olur. Bu, kodun təhlükəsizliyini və yalnız lazım olan şəxslərin müəyyən dəyişiklikləri etməsini təmin edir.[4]
- İşlərin nəzərdən keçirilməsi (ing. Code Review)
- Komanda üzvləri bir-birlərinin kodunu nəzərdən keçirə bilər, təkliflər verə və düzəlişlər edə bilərlər.
- Kod nəzərdən keçirmə alətləri (ing. Pull Request və ya Merge Request) bu prosesin bir hissəsidir.
- Açar sözlər və şərhlər
- Repozitoriyalarda kod haqqında məlumatlar, qeydlər, sənədlər və şərhlər saxlana bilər. Bu, gələcəkdə layihəni anlamaq və ya dəyişiklikləri asanlıqla izləmək üçün faydalıdır.[5]
Növləri
- Yerli repozitoriya (ing. Local Repository)
- Proqram təminatı faylları lokal kompüterdə saxlanılır.[6]
- İstifadəçilər
Git
kimi versiya nəzarət alətlərindən istifadə edərək dəyişiklikləri lokal olaraq izləyə bilərlər.
- Uzaq repozitoriya (ing. Remote Repository)
- Proqram təminatının kodu internet üzərində serverdə saxlanılır və müxtəlif inkişafçılar uzaqdan bu repo ilə işləyə bilirlər.
- Məsələn, GitHub, GitLab və Bitbucket kimi platformalar uzaq repo xidmətləri təklif edir.[7]
- Mərkəzləşdirilmiş və paylanmış repozitoriyalar
- Mərkəzləşdirilmiş repo — kod yalnız bir mərkəzi serverdə saxlanılır (məsələn, SVN).
- Paylanmış repo — hər bir istifadəçinin lokal kompüterində tam repo nüsxəsi olur və hər kəs öz dəyişikliklərini müstəqil şəkildə edə bilir (məsələn, Git).
Repozitoriya ilə iş prosesi
- Fork və ya Klonlama — uzaq repo-nu lokal kompüterə gətirmək üçün "clone" əmri ilə repo-nun nüsxəsini çıxarmaq.
- Şaxələndirmə (ing. Branching) — yeni xüsusiyyət əlavə etmək və ya problemləri həll etmək üçün yeni bir branch yaratmaq.
- Dəyişiklik etmək və qeyd etmək (ing. Commit) — kodu yeniləyərək dəyişiklikləri "commit" ilə repo-ya əlavə etmək.
- Dəyişiklikləri
push
etmək — lokal repo-dakı dəyişiklikləri uzaq repo-ya yükləmək.
Pull Request
və ya Merge Request
göndərmək — layihənin əsas koduna dəyişikliklərin birləşdirilməsi üçün kod nəzərdən keçirmə təklifi göndərmək.
- Birləşdirmək (ing. Merging) — dəyişikliklərin əsas
branch
-ə birləşdirilməsi.
- GitHub — ən populyar kod hostinq platformalarından biridir və geniş bir açıq mənbə icması ilə dəstəklənir.
- GitLab — layihə idarəetmə və CI/CD xüsusiyyətləri ilə təmin edilmiş güclü bir kod hostinq platformasıdır.[8]
- Bitbucket — xüsusilə kiçik bizneslər və komandalar üçün kod hostinqi və layihə idarəetmə xüsusiyyətləri təklif edir.
Repozitoriyalar proqram təminatının hazırlanması və idarə edilməsində çox vacib bir vasitədir. Komanda şəklində məhsuldar işləmək, kodu izləmək və dəyişikliklərin tarixçəsini saxlamaq üçün mütləq istifadə olunmalıdır.[9]
Metadata ikili artefaktı təsvir edir, artefaktın özündən ayrıca saxlanılır və istinad edilir və bir neçə əlavə istifadəyə malik ola bilər. Aşağıdakı cədvəl bəzi ümumi metadata növlərini və onların istifadəsini göstərir:
Metadata növü |
İstifadə olunma səbəbi
|
Mövcud versiyalar |
Avtomatik təkmilləşdirmə və endirmə
|
Asılılıqlar |
Cari artefaktın asılı olduğu digər artefaktları göstərin
|
Aşağı axın asılılıqları |
Cari artefaktdan asılı olan digər artefaktları göstərin
|
Lisenziya |
Hüquqi Uyğunluq
|
Quraşdırma tarixi və vaxtı |
İzləmə qabiliyyəti
|
Sənədləşdirmə |
IDE-də kontekst sənədləri üçün oflayn əlçatanlığın təmin edilməsi
|
Təsdiq Məlumatı |
İzləmə qabiliyyəti
|
Metriklər |
Kodun əhatə dairəsi, qaydalara uyğunluq, test nəticələri
|
İstifadəçi tərəfindən yaradılan metadata |
Fərdi hesabatlar və proseslər
|
İstinadlar