{% extends "botapp/base.html" %} {% block title %}{{ project.path }} | CI{% endblock %} {% block content %}

{{ project.path }}

{% if project.bot %}vinculado ao bot {{ project.bot.name }} {% else %}sem vínculo com bot — a visão unificada depende dele{% endif %}

{% if project.web_url %} Abrir no CI{% endif %} Projetos
{% if project.last_sync_error %}
Último erro de sincronização
{{ project.last_sync_error }}
{% endif %} {% if pode_editar %}
{% csrf_token %}

O vínculo é manual de propósito: casar por semelhança de nome e errar atribuiria telemetria ao bot errado, o que é pior do que não casar.

{% endif %}

Agendamentos

{% for s in schedules %} {% empty %} {% endfor %}
DescriçãoCron TimezoneAtivo Próxima execução
{{ s.description|default:"—" }} {{ s.cron }} {{ s.cron_timezone|default:"—" }} {% if s.active %}{% else %}{% endif %} {{ s.next_run_at|date:"d/m/Y H:i"|default:"—" }}
Nenhum agendamento.

Pipelines recentes

{% for p in pipelines %} {% empty %} {% endfor %}
#Status OrigemRef QuandoDuração Disparado por
{{ p.external_id }} {% if p.status == 'success' and p.has_masked_error %} success ⚠ {% elif p.status == 'success' %}success {% else %}{{ p.status }}{% endif %} {{ p.source|default:"—" }} {{ p.ref|default:"—" }} {{ p.created_at|date:"d/m H:i"|default:"—" }} {{ p.duration|default:"—" }} {{ p.triggered_by|default:"—" }}
Nenhum pipeline sincronizado.
{% endblock %}