Przejdź do treści

Proces raportowania

Scheduler cyklicznie wyzwala centralny pipeline, który przez GitLab API zbiera artefakty conformance.json ze wszystkich projektów grupy i publikuje zagregowany raport na portalu GitLab Pages.

flowchart LR
    A(["① Scheduler\ncron"])
    A -->|wyzwala pipeline| B(["② Centralny\nCI Pipeline"])
    B -->|dashboard:generate| C["dashboard.py\nGitLab API"]
    C -->|pobiera conformance.json\nz każdego projektu| D["Zagregowane\nwyniki"]
    D -->|publikacja| E(["③ Portal\nGitLab Pages"])

    style A fill:#c62828,color:#fff,stroke:#c62828
    style B fill:#c62828,color:#fff,stroke:#c62828
    style C fill:#c62828,color:#fff,stroke:#c62828
    style D fill:#c62828,color:#fff,stroke:#c62828
    style E fill:#c62828,color:#fff,stroke:#c62828
    linkStyle 0 stroke:#c62828,stroke-width:2px
    linkStyle 1 stroke:#c62828,stroke-width:2px
    linkStyle 2 stroke:#c62828,stroke-width:2px
    linkStyle 3 stroke:#c62828,stroke-width:2px

① Wyzwolenie przez scheduler

  • Pipeline raportowania jest uruchamiany przez harmonogram (cron), niezależnie od aktywności zespołów. Domyślnie raz na dobę — zapewnia aktualny przekrój stanu dyscypliny dla całej organizacji.

  • Scheduler nie zależy od żadnego push ani MR. Raport odzwierciedla stan artefaktów z ostatnich uruchomień pipeline'ów w każdym projekcie.

② Zbieranie danych przez dashboard.py

  • dashboard.py przechodzi przez wszystkie projekty grupy GitLab używając GitLab API (z paginacją przez X-Next-Page). Pomija projekty zarchiwizowane.

  • Dla każdego projektu pobiera artefakt conformance.json z domyślnej gałęzi (default_branch). Jeśli projekt nie ma artefaktu — jest widoczny na dashboardzie jako brak pomiaru.

  • Z każdego conformance.json odczytuje:

Pole Znaczenie
app nazwa projektu
app_version tag lub SHA commita z momentu pomiaru
discipline pinowana wersja dyscypliny
checked data ostatniego pomiaru
results wynik każdej normy (pass / fail)
exceptions aktywne waivery z właścicielem i datą wygaśnięcia

③ Publikacja raportu

  • Wyniki są renderowane jako strona Markdown i publikowane na GitLab Pages jako część portalu zasady-dyscypliny.

  • Raport zawiera kolumny: Projekt, Wersja aplikacji, Wersja dyscypliny, Data pomiaru, Wynik, Niezgodności, Odstępstwa.

  • Niezgodności i odstępstwa są listowane z linkami do normy i do artefaktu conformance.json, żeby inżynier mógł natychmiast zobaczyć co i dlaczego nie przeszło.

  • Trzy poziomy odbiorców korzystają z tego samego zbioru danych:

Odbiorca Widok
Inżynier check — co konkretnie nie przeszło i jak naprawić
Tech Lead scorecard — stan projektu względem wszystkich norm
Zarząd portfel + trend — agregat grupy i kierunek w czasie

Warning

Raport jest widokiem artefaktów, nie źródłem prawdy.

  • Artefakt conformance.json jest produkowany przez pipeline aplikacji.
  • Dashboard tylko zbiera i prezentuje — nie uruchamia żadnych checków.

Brak artefaktu oznacza brak pomiaru, nie zgodność.