{%- macro repo_link(project) -%}
{{ project.path_with_namespace|e }}
{%- endmacro -%}
{%- macro user_link(user) -%}
{{ user.username|e }}
{%- endmacro -%}
{%- macro pluralize(value) -%}
{% if value != 1 %}s{% endif %}
{%- endmacro -%}
{%- macro issue_link(issue, title = true, important = true) -%}
{%- if issue.confidential and (not changes or not changes.confidential) -%}confidential {% endif -%}
issue #{{ issue.issue_id -}}
{%- if title -%}
: {{ issue.title|e -}}
{% endif %}
{%- endmacro -%}
{%- macro merge_request_link(merge_request, title = true, important = true) -%}
merge request !{{ merge_request.merge_request_id -}}
{%- if title -%}
: {{ merge_request.title|e -}}
{% endif %}
{%- endmacro -%}
{%- macro issue_or_merge_link(attrs, title = true, important = true) -%}
{%- if attrs.issue_id -%}
{{- issue_link(attrs, title, important) -}}
{%- elif attrs.merge_request_id -%}
{{- merge_request_link(attrs, title, important) -}}
{%- else -%}
unknown object {{ attrs.title|e }}
{%- endif -%}
{%- endmacro -%}
{%- macro fancy_label(label) -%}
{{ util.bold_scope(label.title) }}
{%- endmacro -%}
{%- macro fancy_labels(labels) -%}
{% for label in labels %}
{{ fancy_label(label) }}
{% endfor %}
{%- endmacro -%}
{%- macro list_changes(added, removed, add_word, remove_word, mutate) -%}
{%- if added -%}
{{ add_word }} {{ util.join_human_list(added, mutate=mutate) }}
{% if not removed %}
to
{% endif %}
{%- endif -%}
{%- if removed -%}
{%- if added %}
and
{% endif -%}
{{ remove_word }} {{ util.join_human_list(removed, mutate=mutate) }}
from
{%- endif -%}
{%- endmacro -%}
{%- macro label_changes(added, removed) -%}
{{ list_changes(added, removed, "added", "removed", fancy_label) }}
{%- endmacro -%}
{%- macro assignee_changes(added, removed) -%}
{{ list_changes(added, removed, "assigned", "unassigned", user_link) }}
{%- endmacro -%}