|
| 1 | +# GitHub a pull requesty |
| 2 | + |
| 3 | +Práce s tímto repozitářem bude simulovat **skutečný způsob práce na GitHubu**, kdy budete chtít dosáhnout umístění svého kódu v branchi _main_ v hlavním repu. |
| 4 | + |
| 5 | +Zatím jsou zde úkoly na Python, ale možná přibudou i skriptovací úkoly pro Bash. ChatGPT mi vytvořilo podle zadání bashový skript, který vygeneroval všechny tasky i unit testy. Musel jsem to trochu upravit, protože to nefungovalo hned out-of-the-box. Příkaz `pytest` spustí všechny testy. |
| 6 | + |
| 7 | +Funkce s tasky používají _typing annotation_ - je to moderní způsob psaní funkcí v Pythonu, kdy určujeme datové typy parametrů funkce a datový typ návratové hodnoty. |
| 8 | + |
| 9 | +Úkoly 01 až 25 jsou jednoduché. Výzvou jsou až úkoly 25 až 40. |
| 10 | + |
| 11 | +### Postup samostatné práce |
| 12 | + |
| 13 | +1. Nahlásíš svůj GitHub username, abychom ti dali právo zápisu do tohoto repa |
| 14 | +1. Vybereš si na jakém tasku budeš dělat. V tomto repozitáři na GitHubu založíš **Isssue** s title číslo úkolu (např. **01**) - tím si úkol _zarezervuješ_, aby nikdo jiný neposlal pull request se svým řešením dřív než ty. |
| 15 | +1. Vyřešíš a otestuješ task |
| 16 | + * Spustíš na své řešení `autopep8` - přečti si o [Coding style](https://kodim.cz/czechitas/uvod-do-progr-2/bonusy/coding-style/coding-style) |
| 17 | + * Spustíš na své řešení `pytest` |
| 18 | + * Jednotlivý test spustíš: |
| 19 | + ``` |
| 20 | + pytest test_01_sum_two_numbers.py -vv |
| 21 | + ``` |
| 22 | + |
| 23 | + Parametr `-v` a `-vv` zvyšuje vypisování detailů chyb. |
| 24 | + |
| 25 | +1. Commitneš řešení do nové branche |
| 26 | + * Název branche **musí obsahovat tvoje jméno nebo iniciály, číslo tasku** a krátký popisek: |
| 27 | + * `mz-01-sum-two-numbers` |
| 28 | + * **Commit message musí začínat číslem tasku** a pokračovat vhodným popiskem: |
| 29 | + * `01 Soucet dvou cisel` |
| 30 | + * Pushneš tuto branch do tohoto repa. |
| 31 | +1. Vytvoříš PR, které bude chtít zamergovat branch s řešením tasku do branche main. |
| 32 | + * **PR musí obsahovat přesně jeden tvůj commit** |
| 33 | + * Nech si od koučů poradit s `git commit --amend` popř. `git rebase -i`. |
| 34 | + * Aby byla hra na práci co nejvěrnější, je v repozitáři nastaveno CI (Continuous integration) |
| 35 | + * GitHub Action automaticky spustí `autopep8` a `pytest` pro tvůj task |
| 36 | + * Toto GitHub Action [workflow](.github/workflows/pr-checks.yml) bylo také vygenerováno pomocí ChatGPT, ale bylo opět nutné ho rozfungovat a zlepšit. |
0 commit comments