eSoul docs Help

Git a Github

Pro vývoj používáme Git jako verzovací systém a Github jako platformu pro hostování repozitářů a spolupráci na kódu. Precujeme exkluzivně s naší organizací na Githubu. Repozitáře jsou rozděleny do jednotlivých týmů podle konkrétního projektu.

Repozitáře

Každý repozitář by respektovat základní pravidla:

Commit

  • Píšeme v angličtině.

  • Zprávy by měly být stručné, ale výstižné.

  • Práci radši rozdělit do více menších commitů než do jednoho velkého (commit může být klidně jen jeden řádek v jednom souboru).

  • Pokud je commit složitější, měl by mít i delší popis v těle zprávy.

  • Nevyžadujeme žádný striktní formát zpráv, ale snažte se nějaký styl mít a být konzistentní.

    • Super by bylo, kdyby se držela konzistentní struktura v rámci jednoho repozitáře, ale reálně si myslím, že to nebude vycházet, jelikož já mám zadefinovaný svůj formát a nechci do něj nikoho nutit.

    • Já celkem rád využívám Gitmoji pro lepší přehlednost commitů ve formátu: <intention=emoji> [scope?][:?] <message>.

      • Mám nainstalovaný plugin do IDE, díky kterému můžu hledat emoji podle klíčových slov, ale existuje i CLI tool.

    • Další možnost je Conventional Commits.

Příklad commit zprávy:

:passport_control: [core] add user authentication module - added user entitites - implemented session management - added login and registration endpoints - added middleware for protected routes

Push

  • Pushujeme jen do svých vývojových větví. (v repozitářích by mělo být nastaveno, že do hlavní větve nejde pushovat přímo)

  • Pushujte pravidelně, aby bylo vidět aspoň den zpětně, že se na něčem pracuje.

Větve

  • Hlavní větev main nebo master, která odpovídá funkční, produkční verzi kódu.

  • Několik vývojových větví, kdy každá větev odpovídá konkrétnímu úkolu na kterém se pracuje.

  • Pojmenování větví by mělo odpovídat názvu úkolu ve Freelu.

  • Větve se do hlavní větve slučují přes Pull Requesty.

    • Pull request by měl zkontrolovat minimálně jeden další člen týmu (většinou Tomáš Vojík, pokud není řečeno jinak).

    • Před sloučením musí vždy projít všechny automatické kontroly (CI/CD).

Pull Request

Každá změna musí projít přes pull request (PR), který se váže na konkrétní zadaný úkol.

  • Název PR by měl odpovídat názvu úkolu ve Freelu.

  • Popis PR by měl obsahovat stručný přehled změn, které PR přináší.

  • Do Assignees přidejte všechny, kteří se na PR podíleli (včetně vás).

  • Do Reviewers přidejte minimálně jednoho dalšího člena týmu (většinou Tomáš Vojík, nebo správce projektu, pokud není řečeno jinak).

CI/CD a Github akce

Více info: CI/CD.

Přecházíme z Github akcí na Jenkins hostovaný na našem serveru. Neznamená to, že se Github akce nesmí využívat na nějaké menší repozitáře, ale pro většinu projektů budeme využívat Jenkins.

S nastavením bude pomáhat Tomáš Vojík.

Struktura repozitáře

Každý repozitář by měl mít základní strukturu:

  • README.md - základní informace o projektu, jak ho nastavit, jak přispívat, atd.

  • Jenkinsfile - pokud repozitář využívá Jenkins pro CI/CD, měl by mít tento soubor s definicí pipeline.

  • .gitignore - soubor s výčtem souborů a složek, které se nemají verzovat.

Licence projektů

package.json, composer.json a další soubory s metadaty by měly mít správně nastavenou licenci projektu. Pro všechny klientské projekty musí být lincence nastavena na proprietary (uzavřená licence). Pro open-source knihovny (public) můžeme využít i jiné licence (většinou GPL-3.0 nebo v některých případech i MIT).

Týmy a práva

Private repozitáře mají nastavený přístup podle jednotlivých týmů na Githubu. Pokud jste v týmu, máte automaticky WRITE přístup do všech repozitářů, které tým vlastní. Vyšší práva řešíme na individuální bázi.

Veřejné repozitáře

Některé repozitáře můžou být veřejné (public). Většinou se jedná o knihovny, které můžou být využity i jinde.

26 January 2026