Integracja z GitLab
0 Wprowadzenie
Integracja GitLab to dodatek, który można dodać do dowolnego z trzech planów Easy Redmine.
Celem wtyczki jest agregacja ważnych danych z GitLab w Easy Redmine, aby pomóc w raportowaniu, ocenie i prezentacji działań rozwojowych, wspierając w ten sposób podejmowanie decyzji ze strony interesariuszy, którzy inwestują w projekty i procesy rozwoju oprogramowania Firma.
Jego możliwości obejmują bardzo proste początkowe połączenie z Twoją instancją GitLab (zarówno w wersji samoobsługowej, jak i w chmurze). Po nawiązaniu połączenia Easy Redmine pokaże najważniejsze elementy z GitLab w konfigurowalnych i filtrowalnych listach (podobnie jak lista zadań). Te podmioty to:
- Repozytoria
- Scal prośby
- Zobowiązuje się
- Testy
w tym ich najważniejsze atrybuty.
Kluczowym elementem integracji jest to, że Easy Redmine NIE kopiuje fizycznie repozytoriów. Kod pozostaje w GitLab.
1 Nawiązywanie połączenia
Po pierwsze, musisz mieć token dostępu od użytkownika w GitLab, z odpowiednimi uprawnieniami.
- Wybierz użytkownika, za pośrednictwem którego Easy Redmine będzie uzyskiwać dostęp do GitLab. Może to być specjalny użytkownik, przez który nikt się nie loguje, na przykład er_integrator
- Edytuj profil tego użytkownika
- Przejdź do Tokeny dostępu, wybierz wszystkie uprawnienia i Utwórz osobisty token dostępu
- Skopiuj ten token
Teraz możesz przejść do Easy Redmine i wprowadzić ważne informacje - Przejdź do Admin >> Integracja z GitLab >> Znajdź Dostępne integracje i uderz Konfigurowanie
- Nadaj swojemu połączeniu nazwę, wprowadź adres URL i wygenerowany wcześniej token dostępu.
Uwaga: W przypadku chmury, np. https://gitlab.com/my-little-gitlab , po prostu wpisz https://gitlab.com/ bez podadresu. Nie musisz się martwić, możesz zobaczyć tylko projekty, które widzi użytkownik z tokenem dostępu. Jeśli ustawisz wszystkie swoje projekty jako prywatne, nikt inny nie będzie mógł ich zobaczyć.
- Zapisz
- Otóż to! Połączenie jest gotowe.
Cała reszta odbywa się automatycznie w tle. W szczególności
- Easy Redmine pobiera wszystkie projekty/repozytoria, których członkiem jest użytkownik z tokenem dostępu
- W tych repozytoriach tworzone są webhooki => tak, aby informacje o nowa zatwierdzeń, prośby o scalenie i testy zostaną wysłane do Easy Redmine
1.1 Rozwiązywanie problemów z połączeniem
Problem A
Nie widzę żadnego repozytorium z tej instancji GitLab
Ze względu na nieprzewidywalne okoliczności może się zdarzyć, że powyższe operacje nie zostaną przeprowadzone pomyślnie. W rezultacie możesz nie widzieć żadnego repozytorium z tej instancji GitLab w Easy Redmine.
W takim przypadku możesz ręcznie zaimportować repozytoria za pomocą kilku kliknięć.
- Przejdź do Admin >> Integracja z Gitlab >> Skonfigurowane integracje >> Kliknij nazwę
- W menu bocznym kliknij import
- Wybierz grupę
W przypadku samodzielnego hostowania GitLab, będzie grupa reprezentująca całą instancję. Jak w przykładzie ze zrzutu ekranu.
Dzięki GitLab w chmurze zobaczysz wszystkie grupy publiczne i prawdopodobnie będziesz musiał wyszukać swoją grupę. Pole jest autouzupełniane, więc wyszukiwanie jest szybkie i łatwe.
- Po wybraniu i kliknięciu zobaczysz listę znalezionych projektów/repozytoriów
- Zaznacz wszystko i naciśnij import
Problem B
Znaleziono repozytoria, ale moje nowe zatwierdzenia, żądania scalania i testy nie są dodawane do Easy Redmine
Nowe dane z GitLab są wysyłane do Easy Redmine za pośrednictwem webhooków skonfigurowanych w GitLab. W normalnych warunkach są tworzone automatycznie. Możesz to zweryfikować w swoim projekcie GitLab >> Ustawienia >> Webhooks
Jeśli nie ma webhooka z linkiem do Twojej aplikacji, będziesz musiał go utworzyć. Znowu jest to prosta operacja.
- Przejdź do Admin >> Integracja z Gitlab >> Skonfigurowane integracje >> Kliknij nazwę
- W menu bocznym kliknij Repozytoria
- Kliknij imię jednego
- Kliknij na Zarejestruj wszystkie integracje
Wymusi to ręczne utworzenie webhooka we właściwej formie.
2 Odwołujące się słowa kluczowe
Teraz, gdy ogólne połączenie jest skonfigurowane, masz już informacje z GitLab w Easy Redmine i możesz je wykorzystać. Aby jednak w pełni wykorzystać integrację, jest jeszcze kilka ustawień. Niektóre są już ustawione i możesz je tylko sprawdzić.
Możliwe jest łączenie poszczególnych zatwierdzeń lub scalanie żądań z określonymi zadaniami, a nawet rejestrowanie czasu w ten sposób bez konieczności odwiedzania Easy Redmine. Odbywa się to przez tzw odniesienia do słów kluczowych. Gdy użyjesz ich w komunikacie zatwierdzenia lub nazwie żądania scalenia w połączeniu z identyfikatorem zadania, utworzy łącze między zadaniem a elementem GitLab. Najczęstsze przykłady to nr ref. #1234 or zamyka #1234
W większości przypadków znajdziesz kilka wstępnie ustawionych słów kluczowych. Oto jak z nimi pracować.
- Przejdź do menu Więcej >> Integracja z GitLab >> Referencje
- Utwórz lub edytuj referencję
- Cały formularz zawiera podpowiedzi ułatwiające poruszanie się po nich
Najważniejsze zasady do zapamiętania to:
- Zadanie musi być zidentyfikowane w postaci #ID , np. #1234
- Czas logowania (jeśli jest dozwolony) jest zawsze wprowadzany jako @XhYm, np. @1h30m
- W przypadku zatwierdzeń słowa kluczowe odniesienia należy wprowadzić w komunikat dotyczący zatwierdzenia
- W przypadku próśb scalania słowa kluczowe odniesienia należy wprowadzić w polu Nazwa prośby o połączenie
Mapowanie 3 użytkowników
Ponieważ mamy do czynienia z integracją dwóch różnych aplikacji, każda z nich ma inny zestaw użytkowników. Wszystkie atrybuty użytkownika w podmiotach powiązanych z GitLab (autor zatwierdzenia, recenzent przy żądaniu scalenia itp.) w Easy Redmine + spędzony czas zalogowany za pomocą słów kluczowych odwołujących się, powinny być połączone z prawdziwymi użytkownikami. W jaki sposób użytkownicy z GitLab są mapowani do Easy Redmine?
Nic naukowego tutaj, użytkownicy są po prostu mapowani za pośrednictwem poczty e-mail w obu profilach użytkowników. Upewnij się, że Twoi programiści mają identyczne e-maile zarówno w GitLab, jak i Easy Redmine.
Jeśli z jakiegoś powodu jeden użytkownik nie może ujednolicić wiadomości e-mail w obu aplikacjach, istnieje możliwość wprowadzenia dodatkowego adresu e-mail w Easy Redmine w profilu użytkownika -> wprowadź tutaj adres e-mail GitLab.
4 Jak to działa
Wreszcie dochodzimy do części zabawy. Co integracja faktycznie robi dla użytkowników. Uzyskaj dostęp do strony głównej/dashboardu integracji GitLab poprzez menu Więcej (prawy górny róg) w sekcji Dodatki.
Znajdziesz dostosowywalną stronę w stanie domyślnym, którą możesz później dostosować do swoich potrzeb.
Zawiera również menu do wyświetlania jednostek lub wprowadzania ustawień. Jak wspomniano we wstępie, Easy Redmine gromadzi i wyświetla 4 kluczowe podmioty z GitLab. Przyjrzyjmy się każdemu z nich.
4.1 Repozytoria
Lista repozytoriów jest funkcjonalnie najmniej interesująca, choć naprawdę potrzebna. Przydatny filtr, o którym warto wspomnieć, to Usługi, którego użyjesz, jeśli masz połączone różne instancje GitLab i musisz przeszukać tylko niektóre z nich.
Nazwa repozytorium zawiera również nazwę jego grupy.
Szczegóły repozytorium
Uwagi:
- (Nie-)Zarejestruj wszystkie integracje zostały opisane w rozdziale 1.1. Utworzy/usunie webhooki w projekcie GitLab.
- Edytuj - ręcznie zmienić niektóre atrybuty. Nie ma innego powodu niż zaawansowane debugowanie, aby edytować dowolne atrybuty repozytorium w Easy Redmine.
- Synchronizować - pobiera wszystkie aktualne dane z repozytorium.
- Scal prośby — wyświetla listę wszystkich żądań scalenia w tym repozytorium.
- Wybierz szablon sekwencji - wciąż w fazie rozwoju, daj nam więcej czasu na dopracowanie tego solidnego narzędzia.
4.2 Prośby o scalenie (prośby o kod)
Powinniśmy wyjaśnić, dlaczego istnieją dwie nazwy. Prośba o połączenie to termin używany w GitLab. Inne narzędzia mają na to inne nazwy, na przykład Prośba o pociągnięcie. Mechanizm integracji naszego narzędzia jest napisany w sposób ogólny, dzięki czemu możemy rozszerzyć wsparcie na inne platformy Git. Dlatego w aplikacji i obrazach możesz znaleźć etykietę Prośba o kod, który jest ogólnym terminem, który można zastosować do żądań scalania lub żądań ściągania.
Żądanie scalania to bogata jednostka (przechowuje wszystkie ważne atrybuty), która pozwala tworzyć ładne zestawienia, raporty i wykresy nad nimi bezpośrednio w Easy Redmine.
Szczegóły prośby o scalenie
Uwagi:
- Nazwa żądania scalenia zawiera odwołujące się słowo kluczowe "refs", po którym następuje ID zadania z hashem #765 - dlatego zostało powiązane z zadaniem 765
- Kliknięcie na Synchronizować zaktualizuje wszystkie dane tego MR z GitLab
- Wszystkie atrybuty mogą być pokazane na liście wniosków o scalenie
- Wszystkie atrybuty z wyjątkiem SHA mogą być używane jako filtry na liście/raporcie/wykresie żądań scalenia
- Lista żądań scalenia zawiera również atrybuty testów (CI/CD) z nią związanych, przede wszystkim - Status testu
4.3 Zobowiązania
Podobnie jak w przypadku wniosków o scalenie, lista zatwierdzeń zapewnia również ogromne możliwości raportowania. Lista zatwierdzeń zawiera również atrybuty z testów.
Commit nie ma własnego widoku szczegółów w Easy Redmine. Po prostu nie ma takiej potrzeby. Klikając na URL (lub SHA), zostaniesz przekierowany do jego szczegółów w GitLab.
Testy 4.4
Zostały one wymienione w odniesieniu do ww. podmiotów. Testy mają również własną listę do generowania różnych raportów. Prawdopodobnie najczęstszym zastosowaniem będzie podgląd na żywo testów w krytycznych repozytoriach, takich jak kandydaci do wydania.
Testy również nie posiadają własnego widoku szczegółów, kliknięcie przeniesie Cię do GitLab.
4.5 Synergia – widok z zadania
Przyjrzyjmy się, jak to wszystko idzie w parze.
1 Ogólny status encji GitLab związanych z tym zadaniem. Może zawierać różne kombinacje kolorów (czerwony, pomarańczowy, zielony) oraz ikon (znacznik wyboru, krzyżyk). Najlepszy to oczywiście zielony haczyk w zielonej ramce
Kombinacja zależy od statusu żądania (żądań) scalenia i wyników testów związanych z zatwierdzeniami i żądaniami scalenia. Jego celem jest pokazanie na pierwszy rzut oka, jak postępuje „techniczny” postęp tego zadania, przydatne zwłaszcza dla QA lub kierowników dostaw.
2 Nazwa repozytorium(ów), do których zostały wprowadzone zmiany dotyczące tego zadania. Klikając w link zostaniesz przekierowany do listy tych zatwierdzeń.
3 Nazwa żądań scalenia odnoszących się do tego zadania. Klikając na niego, zostaniesz przekierowany do szczegółów MR w Easy Redmine.
W przypadku, gdy istnieją tylko zatwierdzenia odnoszące się do tego zadania, ale brakuje żądania scalenia, ta wartość jest pusta.
4 Stan każdego żądania scalenia. Klikając na nią, zostaniesz przekierowany do szczegółów żądania scalenia w GitLab.
W przypadku, gdy istnieją tylko zatwierdzenia odnoszące się do tego zadania, ale brakuje żądania scalenia, ta wartość jest pusta.
5 Wynik ostatniego uruchomienia testu w żądaniu scalenia. Klikając w nią zostaniesz przekierowany do potoku w GitLab. Nie można go kliknąć w Autor nieznany status (potok nie istnieje).
W przypadku, gdy istnieją tylko zatwierdzenia odnoszące się do tego zadania, ale brakuje żądania scalenia, wartość pokazuje wynik ostatniego testu uruchomionego przy ostatnim zatwierdzeniu.
6 Uruchom test ręcznie — kliknij, aby ręcznie uruchomić potok (przeniesie Cię do GitLab).
7 Kliknij, aby utworzyć prośbę o scalenie. Przydatne, gdy masz tylko zestaw zatwierdzeń, ale brakuje Ci MR (przenosi Cię do GitLab).
4.6 Utwórz oddział z zadania
(Uwaga: funkcja dostępna od 11plus.6.0)
Niektórym użytkownikom przydatne jest tworzenie gałęzi bezpośrednio z zadania.
Przycisk znajduje się w Więcej menu w szczegółach zadania
Wybierz repozytorium w polu autouzupełniania. Nazwa oddziału jest wstępnie wypełniona identyfikatorem zadania i tematem, ale możesz to zmienić. Gałąź źródłowa jest wstępnie wypełniana przez mistrz
Gałąź zobaczysz jako tag w sekcji integracji Gitlab w zadaniu. Jest klikalny i prowadzi do oddziału w GitLab.
5 uprawnień
Obecnie istnieją dwa uprawnienia.
- Widok — dostęp do dodatku z menu Więcej
- Zarządzaj - edytuj dashboard
Konfiguracja globalna jest dostępna tylko dla administratora Easy Redmine.