Python мануфактураJavaDesign Patterns для автоматизаторів

Терміни, нюанси та джерела

Що змінилося після запису · 27:00

Force-push після amend

Для вже опублікованої feature branch поточна Git documentation надає --force-with-lease як захисний варіант. Він не робить history rewrite безпечним автоматично: branch має бути персональною, а переписування — дозволеним командними правилами.

2.1. відео, енв файл →

Приклад коду · 6:00

Мінімальний task-branch workflow

Команди створюють task branch, перевіряють і stage-ять лише потрібний файл, показують staged diff, комітять і публікують branch.

У remote з’являється окрема branch з одним перевіреним commit, готова для Pull Request.

2. Git Workflow у PyCharm/IntelliJ →

Python мануфактура · Програма курсу · 12:00–15:00

Commit, push і локальний Git identity

`Commit` зберігає зміни лише локально; `Commit and Push` одразу відправляє їх у remote. Часті push можуть запускати CI, тому слід розуміти, які jobs і витрати прив’язані до гілки. Водночас довго тримати єдину копію роботи лише локально теж ризиковано — ритм push узгоджують з командою. Git може попросити `user.name` і `user.email`. Email має бути пов’язаний із потрібним GitHub/GitLab/Bitbucket-акаунтом або бути відповідним `noreply` email. Для робочих і особистих репозиторіїв автор радить локальні налаштування репозиторію замість одного `--global` identity.

2. Git Workflow у PyCharm/IntelliJ →

Java: архівні доповнення · 12:50–14:37

Commit і push

Commit зберігає перевірений знімок змін у локальному repository. Перед push ще раз перевіряються target branch, commit message і файли в diff. Push передає локальні commits до remote repository. Демонстраційний push у відео завершується SSH permission error, що показує окрему вимогу: SSH URL потребує налаштованого SSH key і доступу до repository.

Публікація Java-проєкту на GitHub →

Python мануфактура · Програма курсу · 27:00–29:32

Amend і межа force-push

Amend замінює останній коміт новою версією, що дозволяє додати забутий файл без окремого шумового коміту. Якщо попередній коміт уже запушено, його hash змінився, тому звичайний push відхиляється як non-fast-forward. У відео показано force-push у власну feature-гілку й окремо застережено не робити цього в `main`. Практичне уточнення: безпечніший варіант — `--force-with-lease`, і лише коли правила репозиторію дозволяють переписування гілки та ніхто інший не базує на ній роботу. Якщо це не погоджено, простіше додати новий виправний коміт.

2.1. відео, енв файл →

Python мануфактура · Сесії: AMA та PMP · 10:30–13:30

Перевірка staged diff перед commit і push

Перед кожним commit потрібно відкрити список змінених файлів і переглянути конкретні рядки. Досвід не усуває ризик випадково додати пароль, token, локальну конфігурацію, тимчасовий коментар або сторонню зміну. `.gitignore` зменшує ризик, але не замінює перегляд staged diff. Корисна послідовність: перевірити `git status`, додати лише потрібні файли, переглянути staged diff, створити вузький commit і ще раз перевірити гілку перед push. Коментарі в коді оцінюються за користю; назви функцій, змінних і локаторів мають пояснювати намір без зайвого шуму.

Гітігнор та як працювати з гітом та не помилитись →

Python мануфактура · Програма курсу · 18:00–21:00

Push і створення Pull Request

Після локального коміту виконується Push. Перед ним ще раз переглядаються файли та зміни: це остання проста точка, де можна зупинити випадковий коментар, пароль або сторонній файл. У GitHub для нової гілки створюється Pull Request. Заголовок стисло називає зміну, опис пояснює деталі, а вкладка Files changed показує точний diff. Коментарі рев’ю та автоматичні перевірки мають бути опрацьовані до merge.

2. Git Workflow у PyCharm/IntelliJ →

Python мануфактура · Програма курсу · 16:00–18:00

Безпечний коміт конфігураційних змін

Перед комітом створюється окрема гілка. До diff входять код завантаження конфігурації, `.gitignore` і залежність, але не локальний `.env`. Перед push ще раз перевіряється, що email і пароль не відстежуються. Це важлива межа: `.env` захищає локальні секрети від випадкового Git tracking, але не є менеджером секретів для CI. У CI значення мають надходити з захищених variables/secrets платформи.

2.1. відео, енв файл →

Python мануфактура · Програма курсу · 18:00–19:43

Коміт залежностей і підсумок

Перед комітом перевіряється, що Faker має зафіксовану версію в `requirements.txt`, а всі тести проходять після переходу на dataclass і fixture. Повідомлення коміту описує обидві зміни: типізовану конфігурацію та генерацію тестових даних. Підсумковий стан: конфігурація незмінна й має явний тип, негативний сценарій використовує згенерований пароль, а логін виконується fixture лише там, де потрібен. Це зменшує дублювання без передчасного переходу до складнішої архітектури.

3. Рефакторинг: Faker, DataClass, Fixtures →

Python мануфактура · Програма курсу · 21:00–24:00

Паралельні задачі, merge і видалення гілок

Якщо задачу треба відкласти, достатньо повернутися на `main`; її коміти залишаються у власній гілці. Після завершення та схвалення зміни гілка зливається відповідно до правил репозиторію. У сольній демонстрації показано локальний merge у `main` і подальший push. У командному проєкті джерелом правил є захищена гілка та PR workflow: не слід обходити review локальним merge. Після успішного merge локальну й remote-гілку можна видалити — коміти залишаються в історії.

2. Git Workflow у PyCharm/IntelliJ →

Python мануфактура · Програма курсу · 24:00–25:06

Практичний підсумок

Рекомендований цикл: налаштувати безпечний доступ, створити task branch, зробити вузьку зміну, переглянути diff, закомітити, запушити, створити PR і після merge прибрати гілку. Шорткати IDE прискорюють повторювані дії, але не замінюють перевірку змісту. Головне правило безпеки з відео: публікувати код, але не credentials. Якщо є сумнів, перед push потрібно зупинитися й перечитати весь diff.

2. Git Workflow у PyCharm/IntelliJ →

Python мануфактура · Програма курсу · 26:30–28:21

Валідація workflow й підсумок

Спроба вивести URL через `run` у неправильному місці YAML ламає workflow schema, і GitHub відхиляє конфігурацію ще до тестів. Команду переносять усередину валідного step. IDE plugin і GitHub validation допомагають ловити такі структурні помилки до або одразу після push. Фінальний мінімальний ланцюжок: pytest створює `allure-results`, test jobs передають їх як artifacts, publish job генерує site, GitHub Pages розміщує report, а Playwright traces поки зберігаються окремо як надійний diagnostic artifact.

4. Allure репорт, основи та інтеграція в CI →
Запитати в чаті про «push» →