{% 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{% endif %}

{# .fx-input tem width:100%; na barra de ações precisa de largura própria #}
{% if project.web_url %} Abrir no CI{% endif %} {% if pode_editar and not project.archived %}
{% csrf_token %} {% if not project.local_archived %} {% else %} {% endif %}
{% endif %} Projetos
{% if project.archived or project.local_archived %}
{% if project.archived %}Inativo — arquivado no servidor de CI {% else %}Inativo — arquivado neste painel{% endif %}

Não é sincronizado nem gera alerta. {% if project.local_archived %} Arquivado em {{ project.local_archived_at|date:"d/m/Y H:i" }} {% if project.local_archived_by %}por {{ project.local_archived_by }}{% endif %} {% if project.local_archived_reason %}— “{{ project.local_archived_reason }}”{% endif %}. Para arquivar também no servidor de CI, use as configurações do projeto. {% endif %}

{% endif %} {% if project.last_sync_error %}
Último erro de sincronização
{{ project.last_sync_error }}
{% endif %} {% if pode_editar %}
{% if project.bot %}
vinculado a {{ project.bot.name }}
{% csrf_token %}
{% endif %} {% if bots_sugeridos %}
Sugestões por semelhança de nome
{% for b in bots_sugeridos %}
{% csrf_token %}
{% endfor %}
{% endif %}
{% csrf_token %}
{# input+datalist: pesquisável ao digitar, sem depender de lib externa #} {% for b in bots_sugeridos %}{% endfor %} {% for b in bots_outros %}{% endfor %}

Os bots com nome parecido aparecem primeiro na lista. Confirme o bot antes de vincular.

{% 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 porAções
{{ 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.
{% include "botapp/_ci_log_modal.html" %}
{% endblock %}