Pole Last Commented Date

By in
Pole Last Commented Date

Dziś use case z życia admina. Potrzeba brzmi: osobne pole, które wyświetla datę ostatnio dodanego komentarza. Rozwiązanie znajdziecie w niniejszym poście.

Do realizacji zadania będziemy potrzebować dodatku Power Scripts, a dokładniej dwóch jego elementów: Simple Issue Language oraz SIL Listeners. Dla mnie to jeden z bardziej przydatnych i dających sporo satysfakcji dodatków. Czym właściwie jest Simple Issue Language? To para-język służący do skryptowania w Jira, znacznie rozszerzający jej możliwości. Możemy za jego pomocą odnieść się do większości obiektów w aplikacji, nasłuchiwać na akcjach użytkowników czy zaplanować automatyczne wykonywanie się skryptów. SIL posiada niezłą dokumentację, zachęcam do zapoznania się.

Last Commented Date ma być polem, które znajdzie zastosowanie m.in. w raportach i filtrach jql, a wyświetlać będzie datę ostatnio dodanego komentarza. Ten typ pola (Last public comment date) jest już dostępny w Jira Cloud.

  1. Tworzymy nowe pole
    1. w sekcji Custom Fields dodajemy nowe pole o typie Date Picker
    2. (opcjonalnie) Ustawiamy odpowiedni kontekst, aby pole było dostępne jedynie dla wybranych projektów/typów zadań
    3. dodajemy pole na wybranych ekranach
    4. sprawdzamy jaki ID ma nowo utworzone pole (u mnie jest to 22501)
  2. Tworzymy nowy skrypt SIL
    1. otwieramy SIL Manager i piszemy skrypt przeznaczony do zapięcia mechanizmie SIL Listeners
      if(project == "TEST") {
          string []cmt = getLastComment(key);
          customfield_22501 = cmt[3];
      }
    2. funkcja getLastComment zwraca nam poniższą tablicę, zatem 3 elementem będzie data utworzenia komentarza (licząc od 0). Pełna dokumentacja tutaj.

      Key name

      Description

      id Id of the issue comment.
      text Comment text.
      author Author of the comment.
      created Creation date, as string, can be assigned to a date variable.
      updatedBy Updater, or empty string if there is no updater.
      updated Updated date, or empty string if there’s no update.
      securityLevel Comment security level.
    3. Zanim podepniemy funkcję pod SIL Listeners, możemy sprawdzić wynik na konkretnym zadaniu i sprawdzić co dostaniemy.
  3. Uruchamiamy mechanizm SIL Listeners
    1. otwieramy sekcję SIL Listeners
    2. dodajemy nowy listener i wypełniamy potrzebne pola
    3. do wykonywania tego typu skryptów sugeruję używać dedykowanego użytkownika o dostosowanych uprawnieniach
    4. opcja synchronous sprawi, że skrypt będzie wykonywany w jednym wątku ze zdarzeniem, na którym nasłuchuje mechanizm (Issue Commented), dzięki czemu będzie mógł od razu uzupełnić pole Last Commented Date

To wszystko, zapraszam do dzielenia się uwagami, doświadczeniami i wątpliwościami na contact [at] jiraforthepeople.com


					
Leave a reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *