Przejdź do głównej zawartości

Uruchomienie analizy kodu

Niżej opisana jest kolejność wszystkich czynności potrzebnych do tego, żeby Q247 zaczęło pokazywać dane o kodzie. Sama konfiguracja konektora to dopiero pierwszy z pięciu kroków, a dwa ostatnie wykonuje się ręcznie i to one najczęściej zostają pominięte.

Objaw pominięcia jest zawsze ten sam i mylący: konektor pokazuje status Operacyjny, repozytoria są widoczne, a dashboardy pozostają puste.

Kolejność czynności

KrokKto wykonujeIle trwa
1. Wtyczka działa i zwraca danezespół wdrożeniowyjednorazowo
2. Konektor połączony z systemem kontroli wersjiadministrator Q247kilka minut
3. Repozytoria odkryte i widoczne w Źródłachautomatycznie5 do 10 minut
4. Repozytoria przypisane do projektów wraz z interwałemadministrator Q247kilka minut
5. Statusy kont ustawione zgodnie z tym, kto commitujeadministrator Q247kilka minut plus przeliczenie

1. Wtyczka

Analizę wykonuje Enterprise Plugin, w wariancie Cloud Plugin utrzymywanym przez Q247 albo Private Plugin działającym w infrastrukturze Klienta. Wybór wariantu i instalację opisuje Instalacja.

Zanim przejdziesz dalej, wdrożenie musi być widoczne w Konfiguracji, w sekcji Wtyczki.

2. Konektor

Dodaj konektor do systemu kontroli wersji, zgodnie z Konektorami. Najważniejsze przy tym kroku: konto serwisowe, na którym wygenerowano token, musi mieć dostęp do wszystkich repozytoriów przeznaczonych do analizy.

3. Odkrycie repozytoriów

Po zapisaniu konektora wtyczka odpytuje API i zgłasza znalezione repozytoria. Odczekaj od 5 do 10 minut i odśwież stronę, bo lista nie aktualizuje się sama. Repozytoria pojawią się w Źródłach.

Repozytoriów nie da się dodać ręcznie z tego panelu, poza wyjątkiem konektora Generic GIT, gdzie adresy podaje się wprost w formularzu.

4. Przypisanie do projektu

Skanowanie startuje dopiero wtedy, gdy repozytorium należy do projektu Q247. Z listy Źródeł możesz przypisać jedno repozytorium przez menu operacji przy wierszu albo zaznaczyć wiele i użyć belki operacji zbiorowych.

Formularz przypisania prosi o projekt oraz interwał skanowania:

  • Co godzinę
  • Codziennie, z wyborem strefy czasowej. Skanowanie rusza po północy w wybranej strefie.
Docelowo codziennie, godzinowo tylko na czas wdrożenia

Zalecany interwał docelowy to Codziennie. Metryki Q247 opisują dni i tygodnie, więc dobowe odświeżenie w pełni wystarcza, a rzadsze skanowanie oszczędza obciążenie wtyczki i repozytorium.

Przy pierwszym uruchomieniu warto jednak wybrać interwał godzinowy, bo pozwala potwierdzić w kilkanaście minut, że dane faktycznie się liczą. Interwał dzienny oznacza czekanie do najbliższej nocy, więc ewentualny błąd konfiguracji wychodzi dobę później. Po pierwszym udanym przebiegu przełącz na dzienny.

Skanowanie jest przyrostowe: przy każdym kolejnym przebiegu wtyczka cofa się o dwa tygodnie od ostatniego skanu, żeby złapać commity, które dotarły do repozytorium z opóźnieniem.

Zasady grupowania repozytoriów

Jedno repozytorium należy dokładnie do jednego projektu, ale jeden projekt może mieć wiele repozytoriów. Przypisanie repozytorium do innego projektu odłącza je od poprzedniego i przenosi razem z nim całą jego historię; pozostałe skutki tej operacji opisują Projekty.

Dziel repozytoria po wartości biznesowej, a nie po technologii. Jeśli produkt składa się z backendu, frontendu, aplikacji mobilnej i automatyzacji CI/CD, wszystkie te repozytoria należą do jednego projektu Q247. Podział jedno repozytorium na jeden projekt rozdrabnia metryki i utrudnia porównania, bo dashboardy projektu przestają odpowiadać czemukolwiek, co da się zestawić z planem czy budżetem.

Reguła jedno repozytorium na projekt ma sens tylko wtedy, gdy repozytoria faktycznie są niezależnymi produktami.

5. Statusy kont

Ten krok jest pomijany najczęściej, a bez niego pozostałe nie dają efektu widocznego dla użytkownika.

Osoby wykryte podczas skanowania repozytoriów dostają domyślnie status Inny. Konta z tym statusem nie są widoczne osobno w statystykach projektów ani zespołów: ich aktywność zlewa się w zbiorczy wiersz "Inni", więc dashboardy wyglądają na puste, mimo że commity zostały przetworzone.

Docelowy stan listy kont jest taki:

KtoStatusDlaczego
Osoby, które obecnie commitują do repozytoriówAktywny (bez dostępu), a jeśli mają się logować do Q247, Aktywny (z dostępem)są widoczne jako osobni uczestnicy, z własnymi metrykami
Osoby, które commitowały w przeszłości, a już nie pracują nad kodemNieaktywnykonto traci możliwość logowania, a lista kont odpowiada obecnemu składowi zespołu
Konta techniczne, boty i integracjePomijanyich aktywność w ogóle nie wchodzi do wyliczeń

Zmiana wygląda tak:

  1. Przejdź do Użytkowników i Zespołów.
  2. Odfiltruj albo posortuj listę po kolumnie Status konta, żeby zebrać konta ze statusem Inny.
  3. Zaznacz konta, zbiorowo przez pole wyboru w nagłówku tabeli albo pojedynczo.
  4. Z paska akcji zbiorczych wybierz status właściwy dla tej grupy.

Belka operacji zbiorowych z opcjami zmiany statusu kont

Pasek podaje trzy operacje wprost, a pod przyciskiem z trzema kropkami kryją się pozostałe, w tym ustawienie statusu Pomijany i Nieaktywny.

Najprościej rozdzielić to na dwa przebiegi: najpierw zaznaczyć wszystkich obecnych kontrybutorów i ustawić im Aktywny (bez dostępu), potem zaznaczyć osoby, które odeszły z zespołu, i ustawić im Nieaktywny. Kolumna Data ostatniego incrementu pomaga je rozpoznać.

Po zmianie statusu statystyki wymagają przeliczenia, więc dane pojawią się z opóźnieniem.

Weryfikacja

Sprawdzaj w tej kolejności, bo każdy kolejny punkt ma sens tylko wtedy, gdy poprzedni jest spełniony:

  1. Status konektora pokazuje Operacyjny.
  2. Repozytoria widoczne na liście Źródeł.
  3. Data ostatniego skanowania wypełniona przy repozytorium. Wartość "Nigdy" oznacza, że skanowanie jeszcze nie ruszyło, najczęściej z powodu braku przypisania do projektu.
  4. Projekt widoczny na dashboardzie Pulpit.
  5. Osoby widoczne w statystykach projektu, co potwierdza wykonanie kroku 5.

Przy problemach na etapach 1 do 3 diagnostykę opisuje strona Konektory. Logi wtyczki (q247-plugin.log) pokazują, czy dane są wysyłane, i rozstrzygają, po której stronie szukać przyczyny.

Zobacz też