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}.
  • TiersA 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.displayNametylko 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: Creatorissue.creator, Resolutionissue.resolution, Projectissue.project, IssueType/Typeissue.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.