Modify-commit-push automation

Este un task pe care-l facem la 4 săptămâni, straight-forward - de modificat câteva fișiere, făcut comit și apoi push. No rocket-science. Implică ceva responsabilitate pentru că trebuie făcut rapid așa că ultima dată a trebuit să-l fac eu. Așa m-a ținut din alte taskuri mai importante încât mi-am dorit să-l pot automatiza. Nu taskul în sine este potențialul aici cât posibilitatea de a automatiza modificările de cod. Inițial vreau să fie ceva funcțional, rulabil local.

Folosiți ceva pentru taskuri de genul? M-am gândit la ceva în python care să modifice niște fișiere, subprocess care să apeleze version control (folosesc hg - BTW) și să facă push.
Alte variante mai bune?

Mai exact ce vrei sa faci?
Dupa ce faci push vrei sa modifici fisiere in functie de anumite conditii (fisiere de prop pt diferiti clienti de exemplu)?

Foloseste Ansible care nu e in esenta decat un mod de a executa o lista de comenzi bash. Modificarile in fisiere le poti face cu sed/awk daca nu sunt complicate.

Ar trebui să fac un request și în funcție de răspuns să modific fișierele și să le comit.

Cred ca cea mai safe si usoara solutie este ceva intr-un limbaj de programare (python, nodejs, php, etc). In felul asta ai mult mai mult control pe ce se intampla, try / catch, loguri la fiecare pas al executiei.
De exemplu console.log la status code-ul de la request ca sa iti dai seama imediat daca nu e corect si sa se opreasca scriptul daca e diferit de 200.

Ai putea face si un bash script dar e putin mai greu sa tratezi toate cazurile care pot da fail.

Apoi e mult mai usor sa il integrezi cu altceva daca e nevoie, de exemplu vrei sa trimita un mesaj pe slack/telegram/email cand a terminat. Sau poate il pui pe un server si il faci sa declanseze automat in functie de un webhook.
Sau faci un bot telegram care declanseaza scriptul cand ii trimiti tu comanda. In felul asta poti declansa scriptul cand esti pe mobile foarte usor.

Ce sunt mai exact și de ce au loc acele modificări?

În funcție de asta soluția sugerată poate fi mai potrivită.

Trebuie să faci schimbări după AST (Codemods) sau să înlocuiești ceva placeholder simplu, cu regex ?
Sunt tool-uri pentru refacturarea/patch-uirea codului în mod programatic.

Vrei sa rulezi manual local scriptul sau să fie intr-un job in CI/CD ?

Request-ul este la un index de fișiere care se actualizează periodic. Odată actualizat iau câteva atribute din yml/json (nu țin minte exact formatul) și le adaug în codul meu. That’s it.

Asta speram să aud.

Manual în prima instanță.