{% extends "base.html" %} {% import "repo_tabs.html" as m %} {% block title %}Tags · {{ repo.owner }}/{{ repo.name }}{% endblock %} {% block bodyattrs %} data-repo="{{ repo.url }}"{% endblock %} {% block tabs %}{% call m::tabs(repo, "tags") %}{% endblock %} {% block content %}

Tags {{ tags.len() }}

releasestags
{% if let Some(n) = notice %}

{{ n }}

{% endif %} {% if let Some(e) = error %}

{{ e }}

{% endif %} {% if can_create %}
Create a tag

Signed by this hub's key as your delegate, as oxy tag create and a push would be. Tags never move; a mistake is withdrawn, and its name is not used again.

{% endif %} {% if tags.is_empty() %}

No tags. oxy tag create NAME -m "message" then push{% if can_create %}, or create one above{% endif %}.

{% else %}
{% if can_withdraw %}{% endif %} {% for t in tags %} {% if can_withdraw %}{% endif %} {% endfor %}
TagStateMessageSigned
{{ t.name }} {% for h in t.heads %}{{ h|short }} {% endfor %} {{ t.message }} {% if let Some(s) = t.signer %}✔ {{ s }}{% else %}○ unsigned{% endif %}{% if self.released(t.name.as_str()) %}in a release{% else %}
withdraw
{% endif %}
{% endif %} {% if !withdrawn.is_empty() %}

Withdrawn {{ withdrawn.len() }}

{% for w in withdrawn %} {% endfor %}
TagNamedWhyByWhen
{{ w.name }} {% for h in w.heads %}{{ h|short }} {% endfor %} {% if w.reason.is_empty() %}—{% else %}{{ w.reason }}{% endif %} {% if let Some(s) = w.signer %}✔ {{ s }}{% else %}○ unsigned{% endif %}
{% endif %} {% endblock %}