Skip to content

gitlab-tools

Dokumentacja techniczna

Zestaw funkcji bash do interakcji z GitLab API oraz konfiguracji środowiska git/SSH w jobach CI/CD.

Dodaje wszystkie zmiany do stage’a (git add -A) i amenduje ostatni commit, a następnie wymusza push.

Obsługuje trzy scenariusze:

ScenariuszDziałanieGITLAB_AMEND_RESULT
Brak zmian w stage’uLoguje informację, nie robi nicno_changes
Zmiany cofają stan do HEAD^ (formatowanie przywróciło oryginał)Cofa stage (git restore --staged .), pomija amendskipped
Są rzeczywiste zmianygit commit --amend --no-edit + git push --force-with-leasepushed

Wymagane zmienne:

ZmiennaOpis
GITLAB_USER_EMAILE-mail ustawiany w git config user.email
GITLAB_USER_NAMENazwa ustawiania w git config user.name
CI_COMMIT_REF_NAMEGałąź docelowa pushu

Zmienna wyjściowa: GITLAB_AMEND_RESULT — dostępna po wywołaniu funkcji.


Uruchamia nowy pipeline przez GitLab API dla bieżącej gałęzi, wypisuje URL nowego pipeline’u i kończy bieżącego joba z kodem 1.

Używana gdy job (np. autofix) zmienił kod i chce przekazać sterowanie świeżemu pipeline’owi.

Wymagane zmienne:

ZmiennaOpis
GITLAB_TOKENPersonal/project access token z uprawnieniem api
CI_PROJECT_IDID projektu GitLab (dostępne automatycznie w CI)
CI_COMMIT_REF_NAMEGałąź dla nowego pipeline’u

Konfiguruje klucz SSH w ~/.ssh/id_rsa i dodaje do known_hosts hosty:

  • gitlab.rachuna-net.pl
  • gitlab.com

Używana gdy job wykonuje operacje git przez SSH (np. push do zewnętrznego repozytorium).

Wymagana zmienna:

ZmiennaOpis
GITLAB_SSH_KEYZawartość klucza prywatnego SSH (secret w CI/CD Variables)

Helper jest wstrzykiwany przez before_script każdego joba:

before_script:
  - !reference [.common.job-prepare.script.sh]
  - !reference [.common.gitlab-tools.script.sh]   # ← funkcje dostępne od tej chwili
  - !reference [.common.mój-job.before_script.sh]