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.

  1. 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
  2. Edytuj profil tego użytkownika
  3. Przejdź do Tokeny dostępu, wybierz wszystkie uprawnienia i Utwórz osobisty token dostępu

  4. Skopiuj ten token


    Teraz możesz przejść do Easy Redmine i wprowadzić ważne informacje

  5. Przejdź do Admin >> Integracja z GitLab >> Znajdź Dostępne integracje i uderz Konfigurowanie
  6. 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ć.
  7. Zapisz
  8. 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 Nowy 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ęć.

  1. Przejdź do Admin >> Integracja z Gitlab >> Skonfigurowane integracje >> Kliknij nazwę

  2. W menu bocznym kliknij import

  3. 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.
  4. Po wybraniu i kliknięciu zobaczysz listę znalezionych projektów/repozytoriów
  5. 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.

  1. Przejdź do Admin >> Integracja z Gitlab >> Skonfigurowane integracje >> Kliknij nazwę
  2. W menu bocznym kliknij Repozytoria

  3. Kliknij imię jednego
  4. 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ć.

  1. Przejdź do menu Więcej >> Integracja z GitLab >> Referencje
  2. Utwórz lub edytuj referencję
  3. 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 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.

Wypróbuj Easy Redmine w 30-dniowym bezpłatnym okresie próbnym

Pełne funkcje, ochrona SSL, codzienne kopie zapasowe w Twojej geolokalizacji