Czasami zdarza się tak, iż nad kodem pracuje więcej niż jeden podwykonawca. Przykładowo, jedna firma – Wykonawca X – odpowiada za pisanie kodu aplikacji, a druga – Wykonawca Y – ma regularnie odpowiadać za kontrolę jego jakości.
W takiej sytuacji optymalnym rozwiązaniem jest regularne przesyłanie kopii kodu napisanego przez Wykonawcę X do Wykonawcy Y.
Wbrew pozorom takie drobne, regularne czynności potrafią być całkiem uciążliwe. Jest to więc modelowy proces, który powinno się automatyzować, aby zaoszczędzić czas, energię, a w konsekwencji pieniądze.
W poniższym wpisie umieściliśmy krótką instrukcję, dzięki której można zaoszczędzić trochę czasu w regularnym tworzeniu backupów.
Instrukcja
Poniższa instrukcja wyjaśnia jak przygotować skrypt automatyzujący zrobienie kopii zapasowej kodu między dwoma repozytoriami na GitHubie.
Utwórz nowe repozytorium
Repozytorium z domyślną gałęzią może być prywatne.


Wygeneruj PAT (Personal Access Token)
Token PAT wygenerujesz w zakładce Developer settings na swoim koncie GitHub.
Następnie musisz wybrać okres ważności tokenu. Można wybrać opcję, aby PAT nie wygasał, ale nie jest to najbezpieczniejsze rozwiązanie, więc go nie zalecamy.
WAŻNE: token powinien posiadać uprawnienia repo.

W repozytorium źródłowym dodaj nowy sekret z wygenerowanym tokenem
Możesz to zrobić na swoim koncie GitHub w zakładce: Security → Secret and variables → Actions.
Dla ułatwienia możesz skorzystać z poniższego linku (podmień ’owner’ i ’repo’).
https://github.com/owner/repo/settings/secrets/actions

Skopiuj poniższy kod źródłowy
Poniższy kod źródłowy umieść w postaci pliku np. backup.yml w katalogu .github/workflows na docelowej gałęzi w źródłowym repozytorium.
Podmień zmienne w kodzie skryptu
Podmień wszystkie zmienne wyróżnione ’’ w kodzie skryptu, tak aby odpowiadały nazwom Twojego repozytorium oraz gałęzi.
I to by było na tyle
Jeśli wszystkie kroki zostały wykonane poprawnie, to skrypt będzie uruchamiany za każdym razem kiedy na gałąź docelową zostanie wypchnięty kod.
Podgląd poprawnie utworzonego repozytorium
Aby upewnić się, iż wszytko działa tak jak powinno, sprawdź zgodność swojego repozytorium z podglądem na poniższych zrzutach ekranu:
1. Docelowa gałąź na repozytorium źródłowym:

2. Widok Actions w repozytorium źródłowym:

3. Nowo utworzona gałąź w docelowym repozytorium:
