Szczegóły ebooka

Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych

Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych

Jakub Kalinowski

Ebook

By szybciej, sprawniej i skuteczniej zarządzać projektami

Znalezienie odpowiedzi na zaprzątające umysł pytania z zakresu automatyzacji zwykle wiąże się ze spędzeniem długich godzin na wertowaniu niespójnej dokumentacji lub przeszukiwaniu forum Atlassian Community, gdzie swoimi problemami (a także autorskimi pomysłami na ich rozwiązanie) dzielą się inni użytkownicy Jiry. To jednak często bezproduktywne działanie, a jedynym skutecznym ― albo i nieskutecznym ― sposobem, by pokonać przeszkodę, jest metoda prób i błędów. W szczególności dotyczy to klas, metod i interfejsów, o których możemy jedynie powiedzieć, że istnieją i przyjmują określone typy parametrów.

Książka Jakuba Kalinowskiego ma w zamyśle oszczędzić czytelnikom żmudnego procesu pozyskiwania wiedzy i dać wskazówki, jak rozwiązać konkretne problemy, z którymi mogą się oni zetknąć podczas pracy z Atlassian Jira Server. Znalazło się tu omówienie takich kwestii jak custom fields, workflows, integracje z API, funkcjonalności dostarczane przez pluginy, a także tego, co niesłusznie jest uznawane za terra incognita, czyli tworzenia własnych pluginów. Autor uzupełnił treść o kilka zagadnień związanych z integracją Jiry i Confluence, jak również z bazami Insight - Asset Management, ponieważ obie aplikacje często są obecne w projektach biznesowych, a ich automatyzacja zazwyczaj przysparza wielu problemów.

To książka adresowana przede wszystkim do czytelników, którzy mają już doświadczenie w zarządzaniu projektami i instancjami Jira, jednak do tej pory nie zdecydowali się na pisanie skryptów automatyzujących.

Od autora

Wprowadzenie

Część I. PRZYGOTOWANIE ŚRODOWISKA PRACY

  • Rozdział 1. Instalacja własnej instancji Jiry
    • 1.1. Warunki początkowe
    • 1.2. Przygotowanie systemu operacyjnego
    • 1.3. Instalacja bazy danych
    • 1.4. Instalacja Jira Software Server/Data Center
    • 1.5. Pierwsze uruchomienie Jiry

Część II. DOKUMENTACJA I NARZĘDZIA DEWELOPERA

  • Rozdział 2. Składnia Groovy'ego
    • 2.1. Uwagi dla programistów Javy
    • 2.2. Import bibliotek
    • 2.3. Deklaracja i inicjalizacja zmiennych
    • 2.4. Tworzenie funkcji
    • 2.5. Wykorzystanie klas
    • 2.6. Instrukcje sterujące i pętle
      • 2.6.1. Instrukcja if... else...
      • 2.6.2. Pętla for in
      • 2.6.3. Pętle each() i eachWithIndex()
      • 2.6.4. Metody find() i findAll()
  • Rozdział 3. Atlassian Java APIs
    • 3.1. Accessors (akcesory)
      • 3.1.1. ComponentAccessor
      • 3.1.2. PluginAccessor
    • 3.2. Managers (menedżery)
      • 3.2.1. AttachmentManager
      • 3.2.2. ChangeHistoryManager
      • 3.2.3. CommentManager
      • 3.2.4. CustomFieldManager
      • 3.2.5. GroupManager
      • 3.2.6. IssueLinkManager
      • 3.2.7. IssueManager
      • 3.2.8. LabelManager
      • 3.2.9. OptionsManager
      • 3.2.10. PriorityManager
      • 3.2.11. ProjectComponentManager
      • 3.2.12. ProjectManager
      • 3.2.13. ProjectRoleManager
      • 3.2.14. SubTaskManager
      • 3.2.15. UserManager
      • 3.2.16. VersionManager
    • 3.3. Services (serwisy)
      • 3.3.1. IssueService
      • 3.3.2. IssueIndexingService
      • 3.3.3. ProjectService
      • 3.3.4. SearchService
      • 3.3.5. UserService
  • Rozdział 4. Dokumentacja w sieci
    • 4.1. Społeczność
    • 4.2. Biblioteki Javy dla produktów Atlassian
    • 4.3. Ogólne zagadnienia z programowania w Javie i Groovym
    • 4.4. Dokumentacja REST API
    • 4.5. Dokumentacja pluginów
    • 4.6. Pozostałe
  • Rozdział 5. Testowanie zmian
    • 5.1. Logi
      • 5.1.1. Application logs (logi aplikacyjne)
      • 5.1.2. System logs (logi systemowe)
    • 5.2. Loggers (loggery)
    • 5.3. Audit log (analizator dzienników)
    • 5.4. Support zip (plik dla działu wsparcia)
    • 5.5. Testowanie uprawnień użytkowników
      • 5.5.1. Permission helper
      • 5.5.2. Switch to a different user
    • 5.6. Sposoby testowania skryptów

Część III. TWORZENIE SKRYPTÓW ZA POMOCĄ PLUGINÓW

  • Rozdział 6. Wybór pluginów
    • 6.1. Określenie aktualnych i przyszłych potrzeb
    • 6.2. Porównanie najpopularniejszych pluginów
      • 6.2.1. ScriptRunner
      • 6.2.2. Jira Misc Workflow Extensions (JMWE)
      • 6.2.3. JSU Automation Suite for Jira Workflows
    • 6.3. Decyzja i jej konsekwencje
    • 6.4. Utrzymanie rozwiązań w pluginach
  • Rozdział 7. Przegląd sposobów automatyzacji
    • 7.1. Post functions (post funkcje)
    • 7.2. Conditions (warunki)
    • 7.3. Validators (walidatory)
    • 7.4. Operacje cykliczne
      • 7.4.1. ScriptRunner
      • 7.4.2. JMWE
    • 7.5. Skrypty wyzwalane przez listenery
      • 7.5.1. ScriptRunner
      • 7.5.2. JMWE
    • 7.6. Behaviours
    • 7.7. Fragments (fragmenty)
    • 7.8. REST Endpoint
    • 7.9. Aktualizacja system fields i custom fields
    • 7.10. Wykonywanie przejść w workflows
    • 7.11. Integracja Jiry i Confluence
    • 7.12. Integracja Jiry z Insight - Asset Management

Część IV. TWORZENIE PLUGINÓW ZA POMOCĄ ATLASSIAN SDK

  • Rozdział 8. Instalacja Atlassian SDK
    • 8.1. Środowisko Windows
      • 8.1.1. Weryfikacja JDK
      • 8.1.2. Instalacja JDK
      • 8.1.3. Instalacja Atlassian SDK
    • 8.2. Środowisko Linux
      • 8.2.1. Instalacja JDK
      • 8.2.2. Instalacja Atlassian SDK
    • 8.3. Praca w Eclipse
      • 8.3.1. Konfiguracja projektu w Eclipse
      • 8.3.2. Konfiguracja projektu w Intellij IDEA
  • Rozdział 9. Generowanie szkieletu projektu
    • 9.1. Tworzenie szkieletu pluginu
    • 9.2. Tworzenie modułów pluginu
    • 9.3. Budowanie paczek za pomocą Mavena i ich instalacja
  • Rozdział 10. Przykłady własnych pluginów i modułów
    • 10.1. Uwagi techniczne
      • 10.1.1. Plik pom.xml
      • 10.1.2. Plik konfiguracyjny atlassian-plugin.xml
      • 10.1.3. Zmiana logo pluginu
      • 10.1.4. Wstrzykiwanie zależności
    • 10.2. Dodatkowy element w menu górnym Jiry
    • 10.3. Post functions (post funkcje)
      • 10.3.1. Wymagania biznesowe
      • 10.3.2. Utworzenie klasy obsługującej skrypt post funkcji
      • 10.3.3. Utworzenie serwisu obsługującego parametry post funkcji
      • 10.3.4. Przygotowanie szablonów Velocity
    • 10.4. Conditions (warunki przejścia)
      • 10.4.1. Wymagania biznesowe
      • 10.4.2. Utworzenie klasy obsługującej skrypt warunku przejścia
      • 10.4.3. Utworzenie serwisu obsługującego parametry warunku przejścia
      • 10.4.4. Przygotowanie szablonów Velocity
    • 10.5. Validators (walidatory)
      • 10.5.1. Wymagania biznesowe
      • 10.5.2. Utworzenie klasy obsługującej skrypt walidatora
      • 10.5.3. Utworzenie serwisu obsługującego parametry walidatora
      • 10.5.4. Przygotowanie szablonów Velocity
    • 10.6. REST Endpoint
      • 10.6.1. Wymagania biznesowe
      • 10.6.2. Utworzenie modelu danych JSON
      • 10.6.3. Utworzenie kontrolera dla REST Endpointu

Część V. SYSTEM FIELDS I CUSTOM FIELDS

  • Rozdział 11. Praca z polami
    • 11.1. Sposób wykorzystania system fieldów i custom fieldów
    • 11.2. Dobre praktyki stosowania custom fieldów
      • 11.2.1. Nazewnictwo custom fieldów
      • 11.2.2. Stosowanie kontekstów w custom fieldach
      • 11.2.3. Używanie identyfikatorów custom fieldów zamiast nazw
      • 11.2.4. Dobór odpowiedniego typu custom fieldu
  • Rozdział 12. Dane z system fieldów i custom fieldów
    • 12.1. System fields
      • 12.1.1. Warunki początkowe
      • 12.1.2. Pobieranie wartości
    • 12.2. Text fields i number fields
      • 12.2.1. Warunki początkowe
      • 12.2.2. Pobieranie wartości
      • 12.2.3. Przetwarzanie wartości
    • 12.3. Select list (single choice)
      • 12.3.1. Warunki początkowe
      • 12.3.2. Pobieranie wartości
      • 12.3.3. Przetwarzanie wartości
      • 12.3.4. Dodawanie, usuwanie i dezaktywacja opcji
    • 12.4. Select list (multiple choices)
      • 12.4.1. Warunki początkowe
      • 12.4.2. Pobieranie wartości
      • 12.4.3. Przetwarzanie wartości
      • 12.4.4. Dodawanie, usuwanie i dezaktywacja opcji
    • 12.5. Checkboxes, radio buttons
    • 12.6. Date pickers, date time pickers
      • 12.6.1. Warunki początkowe
      • 12.6.2. Pobieranie wartości
      • 12.6.3. Przetwarzanie wartości
    • 12.7. User pickers i group pickers
      • 12.7.1. Warunki początkowe
      • 12.7.2. Pobieranie wartości
      • 12.7.3. Przetwarzanie wartości
    • 12.8. Scripted fields (pola skryptowe)
      • 12.8.1. Definiowanie scripted fieldów
      • 12.8.2. Text field (multi-line)
      • 12.8.3. Data, data time
      • 12.8.4. Number fields
      • 12.8.5. User picker, group picker

Część VI. OPERACJE NA ZGŁOSZENIACH I PROJEKTACH

  • Rozdział 13. Aktualizacja i tworzenie zgłoszeń
    • 13.1. Aktualizacja tasków i sub-tasków
      • 13.1.1. Warunki początkowe
      • 13.1.2. Aktualizacja system fieldów
      • 13.1.3. Aktualizacja pojedynczego custom fieldu w zgłoszeniu
      • 13.1.4. Aktualizacja wielu custom fieldów i system fieldów w zgłoszeniu
    • 13.2. Tworzenie tasków (samodzielnych zgłoszeń)
      • 13.2.1. Tworzenie zgłoszenia z podstawowymi parametrami
      • 13.2.2. Tworzenie zgłoszenia z ustawieniem wartości wybranych custom fieldów
    • 13.3. Tworzenie sub-tasków (podzadań)
      • 13.3.1. Warunki początkowe
      • 13.3.2. Wymagania biznesowe
      • 13.3.3. Utworzenie skryptu realizującego wymagania biznesowe
    • 13.4. Walidacja zgłoszeń
      • 13.4.1. Warunki początkowe
      • 13.4.2. Weryfikacja błędów w trakcie walidacji
    • 13.5. Operacje na załącznikach (attachments)
      • 13.5.1. Warunki początkowe
      • 13.5.2. Pobieranie załączników ze zgłoszenia
      • 13.5.3. Tworzenie załączników w zgłoszeniach
  • Rozdział 14. Linked issues (zgłoszenia powiązane)
    • 14.1. Rodzaje linked issues
    • 14.2. Pobieranie danych
      • 14.2.1. Warunki początkowe
      • 14.2.2. Pobranie danych z linków zgłoszenia
      • 14.2.3. Przetwarzanie danych
    • 14.3. Tworzenie linked issues
      • 14.3.1. Warunki początkowe
      • 14.3.2. Wymagania biznesowe
      • 14.3.3. Realizacja wymagań biznesowych
    • 14.4. Powiązania issues in epic
    • 14.5. Struktury hierarchiczne powyżej trzech poziomów
  • Rozdział 15. Praca z danymi projektu
    • 15.1. Components (komponenty)
      • 15.1.1. Warunki początkowe
      • 15.1.2. Pobieranie danych
      • 15.1.3. Tworzenie i edycja komponentów
      • 15.1.4. Dodawanie zgłoszeń do komponentów
    • 15.2. Versions (wersje)
      • 15.2.1. Warunki początkowe
      • 15.2.2. Pobieranie danych
      • 15.2.3. Tworzenie i edycja wersji
      • 15.2.4. Dodawanie zgłoszeń do wersji
    • 15.3. Project category (kategoria projektu)
      • 15.3.1. Warunki początkowe
      • 15.3.2. Dodanie projektu do kategorii
      • 15.3.3. Utworzenie i edycja kategorii projektu
    • 15.4. Projekty
      • 15.4.1. Warunki początkowe
      • 15.4.2. Tworzenie projektu z domyślną konfiguracją
      • 15.4.3. Klonowanie projektów
      • 15.4.4. Pobieranie danych i edycja projektu
  • Rozdział 16. Automatyzacja przejść w workflow
    • 16.1. Zmienna transientVars
    • 16.2. Wykonanie prostego przejścia
      • 16.2.1. Wykonanie przejścia za pomocą WorkflowTransitionUtil
      • 16.2.2. Wykonanie przejścia za pomocą IssueService
    • 16.3. Złożone przejścia
      • 16.3.1. Wykonanie złożonego przejścia za pomocą WorkflowTransitionUtil
      • 16.3.2. Wykonanie złożonego przejścia za pomocą komponentu IssueService
    • 16.4. Ignorowanie walidatorów i warunków
      • 16.4.1. Ignorowanie warunków w przejściach (WorkflowTransitionUtil)
      • 16.4.2. Ignorowanie warunków w przejściach (IssueService)
    • 16.5. Wykorzystanie danych z transientVars
  • Rozdział 17. ScriptRunner Behaviours
    • 17.1. Pobieranie i ustawianie wartości pól formularza
    • 17.2. Ustawianie wartości różnych typów pól
      • 17.2.1. Select lists, radio buttons, checkboxes
      • 17.2.2. Pickers (pikery)
      • 17.2.3. Date i date time pickers
    • 17.3. Pozostałe operacje z wykorzystaniem Behaviours

Część VII. KOMUNIKACJA PRZEZ REST API

  • Rozdział 18. Charakterystyka Jira REST API
    • 18.1. URI zapytania
    • 18.2. Uwierzytelnienie i autoryzacja
      • 18.2.1. Basic authentication
      • 18.2.2. OAuth
    • 18.3. Dokumentacja Jira REST API
    • 18.4. Wykorzystanie Jira REST API w projektach biznesowych
  • Rozdział 19. Operacje przez Jira REST API
    • 19.1. Pobieranie danych przez Jira REST API
      • 19.1.1. Plik CSV z listą zgłoszeń
      • 19.1.2. Zestawienie custom fieldów, które nie występują na screenach
      • 19.1.3. Pobranie użytkowników z danej grupy
      • 19.1.4. Zwrócenie listy zarchiwizowanych projektów
    • 19.2. Tworzenie obiektów w Jirze
      • 19.2.1. Tworzenie zgłoszeń z podstawowymi danymi
      • 19.2.2. Tworzenie zgłoszeń z wartościami custom fieldów
      • 19.2.3. Tworzenie projektów
    • 19.3. Edycja zgłoszeń w Jirze
  • Rozdział 20. Własne REST API
    • 20.1. Utworzenie REST Endpoint
    • 20.2. Strony WWW oparte na REST Endpointach
    • 20.3. Wystawienie danych w postaci obiektu JSON
    • 20.4. Przetworzenie żądania POST
  • Rozdział 21. Komunikacja z Jira REST API przez aplikacje zewnętrzne
    • 21.1. Aplikacje Javy
    • 21.2. JavaScript
    • 21.3. PHP
    • 21.4. Python
    • 21.5. Excel/Power Query
      • 21.5.1. Visual Basic for Application (VBA)
      • 21.5.2. Power Query

Część VIII. INTERAKCJA JIRY Z CONFLUENCE

  • Rozdział 22. Operacje na przestrzeniach i stronach
    • 22.1. Połączenie instancji Jiry i Confluence
    • 22.2. Pobieranie zawartości strony
    • 22.3. Tworzenie przestrzeni
    • 22.4. Aktualizacja stron w przestrzeni
      • 22.4.1. Utworzenie przestrzeni z modyfikacją strony głównej
      • 22.4.2. Aktualizacja wybranej strony Confluence
    • 22.5. Tworzenie stron i przestrzeni
    • 22.6. Tworzenie podstron
    • 22.7. Dodanie etykiet (labels) do stron i podstron
    • 22.8. Tworzenie stron z szablonu
  • Rozdział 23. Zarządzanie uprawnieniami do przestrzeni

Część IX. INTERAKCJA Z INSIGHT - ASSET MANAGEMENT

  • Rozdział 24. Wprowadzenie do baz Insight - Asset Management
    • 24.1. Tworzenie schematów obiektów (object schemas)
      • 24.1.1. Ustawienia statusów
      • 24.1.2. Ustawienia ról
    • 24.2. Tworzenie typów obiektów
    • 24.3. Object attributes (atrybuty obiektów)
    • 24.4. Atrybuty referencyjne
  • Rozdział 25. Pola Insighta w Jirze
    • 25.1. Typy pól Insighta w Jirze
      • 25.1.1. Insight object/s
      • 25.1.2. Insight referenced object/s
      • 25.1.3. Pozostałe typy custom fieldów
    • 25.2. Obiekty Insighta w Javie/Groovym
      • 25.2.1. Poziom pierwszy - ObjectBean
      • 25.2.2. Poziom drugi - ObjectAttributeBean
      • 25.2.3. Poziom trzeci - ObjectAttributeValueBean
    • 25.3. Pobieranie danych z obiektów Insighta
      • 25.3.1. Warunki początkowe
      • 25.3.2. Pobranie atrybutów typu default z obiektów Insighta
      • 25.3.3. Pobieranie atrybutów typu object
    • 25.4. Aktualizacja wartości custom fieldów typu Insight object/s
      • 25.4.1. Obiekty Insighta pobrane przez identyfikator
      • 25.4.2. Obiekty Insighta wybrane przez zapytanie IQL
    • 25.5. Operacje za pomocą ScriptRunner Behaviours
  • Rozdział 26. Operacje na schematach obiektów Insighta
    • 26.1. Zmiana wartości atrybutu typu default
    • 26.2. Zmiana wartości atrybutu typu object
    • 26.3. Tworzenie obiektów Insighta
    • 26.4. Usuwanie obiektów z bazy Insight
  • Tytuł: Atlassian Jira Server & Data Center. Programowanie rozwiązań w projektach biznesowych
  • Autor: Jakub Kalinowski
  • ISBN: 978-83-8322-800-6, 9788383228006
  • Data wydania: 2023-01-03
  • Format: Ebook
  • Identyfikator pozycji: atjise
  • Wydawca: Helion