Przejdź do głównej zawartości

Word Odniesienie do tokena szablonu

Pełna lista ścieżek danych (powiązań), których możesz użyć w szablonie Word. Odzwierciedla to panel referencyjny tokenu w produkcie i katalog powiązań wymuszany przez moduł sprawdzania poprawności — jeśli ścieżka nie jest tutaj wymieniona, edytor ją flaguje. Informacje na temat gramatyki i formaterów znajdziesz w Word Tryb szablonu.

Jak czytać tę stronę​

  • W tokenie wartości zastosowano powiązanie skalar: ${issue.summary}.
  • W pętli używane jest wiązanie kolekcja: ${#each issue.subtasks as sub}…${/each}. Wewnątrz pętli dojdź do pola elementu poprzez zmienną pętli: ${sub.key}.
  • Tiers — A jest ogólnie dostępny; B jest wysyłany tylko dlatego, że pakiet wydania zawiera już dane; C jest widoczny, ale nie można powiązać, wymieniony, aby produkt był rzetelny co do zakresu.
  • To, które elementy główne są dostępne, zależy od kontekstu eksportu.

Eksportuj konteksty i ich korzenie​

Szablon Word działa w jednym z siedmiu kontekstów, każdy eksponuje inny zestaw korzeni najwyższego poziomu.

KontekstDostępne korzenie
single-issueissue, generatedAt
automation (Jira Działanie automatyczne)issue, generatedAt
multi-issue (JQL / tablica)issues, issueGroups, generatedAt
scheduledissues, issueGroups, generatedAt
sprintissues, issueGroups, sprint, generatedAt
releaseissues, issueGroups, release, generatedAt
backlogissues, issueGroups, backlog, generatedAt

generatedAt (data/godzina) jest dostępny w kontekście każdy.

Poziom A — powierzchnia problemu (issue.*)​

Dostępne w wersjach single-issue i automation. Te same pola mają kształt poszczególnych elementów kolekcji issues — wewnątrz ${#each issues as it} użyj ${it.key}, ${it.summary} i tak dalej.

Skalary​

ŚcieżkaTyp
issue.keyciąg
issue.summaryciąg
issue.descriptiontekst sformatowany (ADF)
issue.statusstan
issue.status.categoryciąg
issue.prioritypriorytet
issue.assigneeużytkownik
issue.assignee.displayNameciąg
issue.reporterużytkownik
issue.reporter.displayNameciąg
issue.createddatagodzina
issue.updateddatagodzina
issue.dueDatedata
issue.parent.keyciąg
issue.parent.summaryciąg
issue.parent.statusciąg znaków

Wartość wpisana user domyślnie renderuje nazwę wyświetlaną; użyj formatyzatora user, aby wybrać część, np. ${issue.assignee | user("displayName")}. Wartość tekstu sformatowanego jest renderowana; użyj | plain(), aby usunąć formatowanie.

Kolekcje​

KolekcjaPola pozycji (w odniesieniu do zmiennej pętli)
issue.labelslista wartości prostych — zmienna pętli jest ciągiem etykiety
issue.componentsname
issue.fixVersionsname, released (wartość logiczna)
issue.affectsVersionsname
issue.subtaskskey, summary, status, priority, assignee, dueDate
issue.commentsauthor (użytkownik), author.displayName, body (ADF), created, updated
issue.attachmentsfilename, mimeType, size, isImage, created, author.displayName — tylko metadane, bez pliku binarnego i bez adresu URL
issue.issueLinkstypeName, direction, linkedIssue.key, linkedIssue.summary, linkedIssue.status
issue.worklogsauthor.displayName, timeSpent, timeSpentSeconds, created, started

Przykład:

${#each issue.worklogs as wl}
${wl.author.displayName}: ${wl.timeSpentSeconds | duration("hm")} on ${wl.started | date("yyyy-MM-dd")}
${/each}

Poziom A — korzenie obejmujące wiele problemów​

Dostępne w wersjach multi-issue, scheduled, sprint, release i backlog.

ŚcieżkaRodzajPola pozycji
issueskolekcjapełna powierzchnia wydania względem zmiennej pętli
issueGroups.fixVersionskolekcjakey, title, issues
issueGroups.sprintskolekcjakey, title, issues
issueGroups.assigneeskolekcjakey, title, issues
issueGroups.worklogAssigneeskolekcjakey, title, issues

Przykład — grupa, następnie zagadnienia w ramach każdej grupy:

${#each issueGroups.assignees as group}
## ${group.title}
${#each group.issues as it}
- ${it.key}: ${it.summary}
${/each}
${/each}

Poziom A — korzenie pakietu kontekstowego​

Dostępne tylko w ich własnym kontekście.

sprint​

ŚcieżkaTyp
sprint.sprint.nameciąg
sprint.sprint.goalciąg
sprint.sprint.stateopcja
sprint.stats.issueCountnumer
sprint.stats.percentDonenumer

release​

ŚcieżkaTyp
release.release.nameciąg
release.release.releaseDatedata
release.release.releasedwartość logiczna
release.stats.issueCountnumer
release.stats.percentDonenumer

backlog​

ŚcieżkaPola typu/elementu
backlog.board.boardNameciąg
backlog.board.boardTypeopcja
backlog.stats.totalIssueCountnumer
Kolekcjabacklog.groups

Poziom A — metadane​

ŚcieżkaTypKonteksty
generatedAtdatagodzinawszystkie

Poziom B — dziennik zmian​

ŚcieżkaRodzajPola pozycji
issue.changeHistorykolekcjaauthor.displayName, created, items

Poziom C — widoczny, ale nie można go powiązać​

Istnieją one koncepcyjnie, ale nie można ich rozwiązać; są one wymienione, aby redaktor i osoba zajmująca się walidacją mogli rzetelnie określić zakres.

MożliwościUwaga
issue.jsmJira Service Management żądanie, SLA i powierzchnia zatwierdzenia — odroczone.
JQL-w-szablonieWykryty przez skaner migracji i zdiagnozowany, nigdy nie wykonany.
TempoLustro Tempo może istnieć w dzienniku pracy, ale nie jest powiązane.
Xray / ZephyrPola zarządzania testami wymagają aplikacji innej firmy.
Zasoby / WglądPola obiektów są odroczone.

Pola niestandardowe​

Pola niestandardowe można powiązać w ramach jednej przestrzeni nazw:

${ issue.customFields.<fieldId>.<…> }
  • Nieznane identyfikatory pól niestandardowych to soft: edytor wyświetla ostrzeżenie, a wartość może być pusta, ale nigdy nie jest to twardy blok — więc szablon może bez problemu odwoływać się do pola, którego ta witryna nie posiada.
  • Naga ścieżka issue.customFields (cała mapa) nie jest nigdy możliwa do powiązania.
  • Dozwolone są tylko bezpieczne znaki identyfikacyjne; Segmenty __proto__, prototype i constructor są odrzucane.

Zastrzeżenia podczas migracji z Xportera​

Skaner migracji sugeruje ścieżki Exportelier dla popularnych nazw pól Xportera. Warto wiedzieć dwie rzeczy, aby sugerowane przepisanie rzeczywiście rozwiązało problem:

  1. Autokonwersja naprawia składnię, a nie istnienie ścieżki. Przepisanie ma odpowiedni kształt, ale cel musi nadal być rzeczywistym powiązaniem na tej stronie, w przeciwnym razie wygeneruje ostrzeżenie unknown-binding:
    • Nie w katalogu: Creator → issue.creator, Resolution → issue.resolution, Project → issue.project, IssueType/Type → issue.issuetype.
    • Niezgodność wielkości liter: DueDate jest sugerowana jako issue.duedate, ale powiązanie to issue.dueDate.
    • **Niezgodność rodzaju: ** Labels jest sugerowane jako skalar, ale issue.labels jest kolekcją — użyj pętli.
  2. Wydaj linki. Alias ​​Links jest sugerowany jako links, ale prawdziwe powiązanie to issue.issueLinks.

Zobacz Składnia Xportera: co działa, aby zapoznać się z pełną mapą migracji.

Ścieżki, które nigdy nie są dozwolone​

Ze względów bezpieczeństwa niektóre ścieżki są odrzucane z błędem unsafe-template niezależnie od kontekstu — pól wewnętrznych, danych uwierzytelniających lub zawierających adres URL. Należą do nich korzenie takie jak auth, context, forge, internal, secrets, storage i token oraz dowolna ścieżka kończąca się na accountId, apiToken, avatarUrl, baseUrl, contentUrl, thumbnailUrl, cookie, session, headers, private lub storageRef. Trzymaj się wiązań na tej stronie, a na nie nie trafisz.