diff --git a/templates.go b/templates.go index b2548a5..b14ec92 100644 --- a/templates.go +++ b/templates.go @@ -29,34 +29,59 @@ const defaultListTemplate = "{{ range .issues }}{{ .key | append \":\" | printf const defaultTableTemplate = `+{{ "-" | rep 16 }}+{{ "-" | rep 57 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+{{ "-" | rep 12 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+ | {{ "Issue" | printf "%-14s" }} | {{ "Summary" | printf "%-55s" }} | {{ "Priority" | printf "%-12s" }} | {{ "Status" | printf "%-12s" }} | {{ "Age" | printf "%-10s" }} | {{ "Reporter" | printf "%-12s" }} | {{ "Assignee" | printf "%-12s" }} | +{{ "-" | rep 16 }}+{{ "-" | rep 57 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+{{ "-" | rep 12 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+ -{{ range .issues }}| {{ .key | printf "%-14s"}} | {{ .fields.summary | abbrev 55 | printf "%-55s" }} | {{.fields.priority.name | printf "%-12s" }} | {{.fields.status.name | printf "%-12s" }} | {{.fields.created | age | printf "%-10s" }} | {{if .fields.reporter}}{{ .fields.reporter.name | printf "%-12s"}}{{else}}{{end}} | {{if .fields.assignee }}{{.fields.assignee.name | printf "%-12s" }}{{else}}{{end}} | -{{ end }}+{{ "-" | rep 16 }}+{{ "-" | rep 57 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+{{ "-" | rep 12 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+ +{{ range .issues -}} + | {{ .key | printf "%-14s"}} | {{ .fields.summary | abbrev 55 | printf "%-55s" }} | {{.fields.priority.name | printf "%-12s" }} | {{.fields.status.name | printf "%-12s" }} | {{.fields.created | age | printf "%-10s" }} | {{if .fields.reporter}}{{ .fields.reporter.name | printf "%-12s"}}{{else}}{{end}} | {{if .fields.assignee }}{{.fields.assignee.name | printf "%-12s" }}{{else}} {{end}} | +{{ end -}} ++{{ "-" | rep 16 }}+{{ "-" | rep 57 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+{{ "-" | rep 12 }}+{{ "-" | rep 14 }}+{{ "-" | rep 14 }}+ ` -const defaultViewTemplate = `issue: {{ .key }}{{if .fields.created}} -created: {{ .fields.created | age }} ago{{end}}{{if .fields.status}} -status: {{ .fields.status.name }}{{end}} +const defaultViewTemplate = `{{/* view template */ -}} +issue: {{ .key }} +{{if .fields.created -}} +created: {{ .fields.created | age }} ago +{{end -}} +{{if .fields.status -}} +status: {{ .fields.status.name }} +{{end -}} summary: {{ .fields.summary }} -project: {{ .fields.project.key }}{{if .fields.components}} -components: {{ range .fields.components }}{{ .name }} {{end}}{{end}}{{if .fields.issuetype}} -issuetype: {{ .fields.issuetype.name }}{{end}}{{if .fields.assignee}} -assignee: {{ .fields.assignee.name }}{{end}} -reporter: {{ if .fields.reporter }}{{ .fields.reporter.name }}{{end}}{{if .fields.customfield_10110}} -watchers: {{ range .fields.customfield_10110 }}{{ .name }} {{end}}{{end}}{{if .fields.issuelinks}} +project: {{ .fields.project.key }} +{{if .fields.components -}} +components: {{ range .fields.components }}{{ .name }} {{end}} +{{end -}} +{{if .fields.issuetype -}} +issuetype: {{ .fields.issuetype.name }} +{{end -}} +{{if .fields.assignee -}} +assignee: {{ .fields.assignee.name }} +{{end -}} +reporter: {{ if .fields.reporter }}{{ .fields.reporter.name }}{{end}} +{{if .fields.customfield_10110 -}} +watchers: {{ range .fields.customfield_10110 }}{{ .name }} {{end}} +{{end -}} +{{if .fields.issuelinks -}} blockers: {{ range .fields.issuelinks }}{{if .outwardIssue}}{{ .outwardIssue.key }}[{{.outwardIssue.fields.status.name}}]{{end}}{{end}} -depends: {{ range .fields.issuelinks }}{{if .inwardIssue}}{{ .inwardIssue.key }}[{{.inwardIssue.fields.status.name}}]{{end}}{{end}}{{end}}{{if .fields.priority}} -priority: {{ .fields.priority.name }}{{end}}{{if .fields.votes}} -votes: {{ .fields.votes.votes}}{{end}}{{if .fields.labels}} -labels: {{ join ", " .fields.labels }}{{end}} +depends: {{ range .fields.issuelinks }}{{if .inwardIssue}}{{ .inwardIssue.key }}[{{.inwardIssue.fields.status.name}}]{{end}}{{end}} +{{end -}} +{{if .fields.priority -}} +priority: {{ .fields.priority.name }} +{{end -}} +{{if .fields.votes -}} +votes: {{ .fields.votes.votes}} +{{end -}} +{{if .fields.labels -}} +labels: {{ join ", " .fields.labels }} +{{end -}} description: | - {{ or .fields.description "" | indent 2 }}{{if .fields.comment.comments}} - + {{ or .fields.description "" | indent 2 }} +{{if .fields.comment.comments}} comments: {{ range .fields.comment.comments }} - | # {{.author.name}}, {{.created | age}} ago {{ or .body "" | indent 4}} -{{end}}{{end}} +{{end}} +{{end -}} ` -const defaultEditTemplate = `# issue: {{ .key }} +const defaultEditTemplate = `{{/* edit template */ -}} +# issue: {{ .key }} update: comment: - add: @@ -69,8 +94,8 @@ fields: - name: {{ .name }}{{end}}{{end}} assignee: name: {{ if .overrides.assignee }}{{.overrides.assignee}}{{else}}{{if .fields.assignee }}{{ .fields.assignee.name }}{{end}}{{end}} -# reporter: -# name: {{ if .overrides.reporter }}{{ .overrides.reporter }}{{else if .fields.reporter}}{{ .fields.reporter.name }}{{end}} + reporter: + name: {{ if .overrides.reporter }}{{ .overrides.reporter }}{{else if .fields.reporter}}{{ .fields.reporter.name }}{{end}} # watchers customfield_10110: {{ range .fields.customfield_10110 }} - name: {{ .name }}{{end}}{{if .overrides.watcher}} @@ -93,7 +118,8 @@ const defaultComponentsTemplate = `{{ range . }}{{.id }}: {{.name}} const defaultIssuetypesTemplate = `{{ range .projects }}{{ range .issuetypes }}{{color "+bh"}}{{.name | append ":" | printf "%-13s" }}{{color "reset"}} {{.description}} {{end}}{{end}}` -const defaultCreateTemplate = `fields: +const defaultCreateTemplate = `{{/* create template */ -}} +fields: project: key: {{ or .overrides.project "" }} issuetype: @@ -118,49 +144,76 @@ const defaultCommentTemplate = `body: |~ {{ or .overrides.comment "" | indent 2 }} ` -const defaultTransitionTemplate = `update: +const defaultTransitionTemplate = `{{/* transition template */ -}} +update: comment: - add: body: |~ {{ or .overrides.comment "" | indent 10 }} -fields:{{if .meta.fields.assignee}} +fields: +{{- if .meta.fields.assignee}} assignee: - name: {{if .overrides.assignee}}{{.overrides.assignee}}{{else}}{{if .fields.assignee}}{{.fields.assignee.name}}{{end}}{{end}}{{end}}{{if .meta.fields.components}} + name: {{if .overrides.assignee}}{{.overrides.assignee}}{{else}}{{if .fields.assignee}}{{.fields.assignee.name}}{{end}}{{end}} +{{- end -}} +{{if .meta.fields.components}} components: # Values: {{ range .meta.fields.components.allowedValues }}{{.name}}, {{end}}{{if .overrides.components }}{{ range (split "," .overrides.components)}} - name: {{.}}{{end}}{{else}}{{ range .fields.components }} - - name: {{ .name }}{{end}}{{end}}{{end}}{{if .meta.fields.description}} - description: {{or .overrides.description .fields.description }}{{end}}{{if .meta.fields.fixVersions}}{{if .meta.fields.fixVersions.allowedValues}} + - name: {{ .name }}{{end}}{{end}} +{{- end -}} +{{if .meta.fields.description}} + description: {{or .overrides.description .fields.description }} +{{- end -}} +{{if .meta.fields.fixVersions -}} + {{if .meta.fields.fixVersions.allowedValues}} fixVersions: # Values: {{ range .meta.fields.fixVersions.allowedValues }}{{.name}}, {{end}}{{if .overrides.fixVersions}}{{ range (split "," .overrides.fixVersions)}} - name: {{.}}{{end}}{{else}}{{range .fields.fixVersions}} - - name: {{.}}{{end}}{{end}}{{end}}{{end}}{{if .meta.fields.issuetype}} + - name: {{.}}{{end}}{{end}} + {{- end -}} +{{- end -}} +{{if .meta.fields.issuetype}} issuetype: # Values: {{ range .meta.fields.issuetype.allowedValues }}{{.name}}, {{end}} - name: {{if .overrides.issuetype}}{{.overrides.issuetype}}{{else}}{{if .fields.issuetype}}{{.fields.issuetype.name}}{{end}}{{end}}{{end}}{{if .meta.fields.labels}} + name: {{if .overrides.issuetype}}{{.overrides.issuetype}}{{else}}{{if .fields.issuetype}}{{.fields.issuetype.name}}{{end}}{{end}} +{{- end -}} +{{if .meta.fields.labels}} labels: {{range .fields.labels}} - {{.}}{{end}}{{if .overrides.labels}}{{range (split "," .overrides.labels)}} - - {{.}}{{end}}{{end}}{{end}}{{if .meta.fields.priority}} + - {{.}}{{end}}{{end}} +{{- end -}} +{{if .meta.fields.priority}} priority: # Values: {{ range .meta.fields.priority.allowedValues }}{{.name}}, {{end}} - name: {{ or .overrides.priority "unassigned" }}{{end}}{{if .meta.fields.reporter}} + name: {{ or .overrides.priority "unassigned" }} +{{- end -}} +{{if .meta.fields.reporter}} reporter: - name: {{if .overrides.reporter}}{{.overrides.reporter}}{{else}}{{if .fields.reporter}}{{.fields.reporter.name}}{{end}}{{end}}{{end}}{{if .meta.fields.resolution}} + name: {{if .overrides.reporter}}{{.overrides.reporter}}{{else}}{{if .fields.reporter}}{{.fields.reporter.name}}{{end}}{{end}} +{{- end -}} +{{if .meta.fields.resolution}} resolution: # Values: {{ range .meta.fields.resolution.allowedValues }}{{.name}}, {{end}} - name: {{if .overrides.resolution}}{{.overrides.resolution}}{{else if .fields.resolution}}{{.fields.resolution.name}}{{else}}{{or .overrides.defaultResolution "Fixed"}}{{end}}{{end}}{{if .meta.fields.summary}} - summary: {{or .overrides.summary .fields.summary}}{{end}}{{if .meta.fields.versions.allowedValues}} + name: {{if .overrides.resolution}}{{.overrides.resolution}}{{else if .fields.resolution}}{{.fields.resolution.name}}{{else}}{{or .overrides.defaultResolution "Fixed"}}{{end}} +{{- end -}} +{{if .meta.fields.summary}} + summary: {{or .overrides.summary .fields.summary}} +{{- end -}} +{{if .meta.fields.versions.allowedValues}} versions: # Values: {{ range .meta.fields.versions.allowedValues }}{{.name}}, {{end}}{{if .overrides.versions}}{{ range (split "," .overrides.versions)}} - name: {{.}}{{end}}{{else}}{{range .fields.versions}} - - name: {{.}}{{end}}{{end}}{{end}} + - name: {{.}}{{end}}{{end}} +{{- end}} transition: id: {{ .transition.id }} name: {{ .transition.name }} ` -const defaultWorklogTemplate = `# issue: {{ .issue }} +const defaultWorklogTemplate = `{{/* worklog template */ -}} +# issue: {{ .issue }} comment: |~ {{ or .comment "" }} timeSpent: {{ or .timeSpent "" }} started: ` -const defaultWorklogsTemplate = `{{ range .worklogs }}- # {{.author.name}}, {{.created | age}} ago +const defaultWorklogsTemplate = `{{/* worklogs template */ -}} +{{ range .worklogs }}- # {{.author.name}}, {{.created | age}} ago comment: {{ or .comment "" }} timeSpent: {{ .timeSpent }}