{% extends "base.html" %} {% block title %}{{ repo_name }} — Grimoire{% endblock %} {% block nav_dashboard %}active{% endblock %} {% block content %} {# ── Breadcrumb ────────────────────────────────────────────────────── #} {# ── Hero Section ──────────────────────────────────────────────────── #}

{{ repo_name }}

{% for branch in branches %} {% if not loop.first %}·{% endif %} {{ branch }} {% endfor %}
View on GitHub
{# ── Warnings ──────────────────────────────────────────────────────── #} {% if stats.warnings %}
Some data could not be fetched
{% endif %} {# ── Compact Stats Bar ─────────────────────────────────────────────── #} {% set stale_issues_pct = (stats.stale_issues * 100 / stats.open_issues) if stats.open_issues > 0 else 0 %} {% set stale_prs_pct = (stats.stale_pull_requests * 100 / stats.open_pull_requests) if stats.open_pull_requests > 0 else 0 %}
{{ stats.open_issues }} issues {% if stats.stale_issues %} ({{ stats.stale_issues }} stale) {% endif %} · {{ stats.open_pull_requests }} PRs {% if stats.stale_pull_requests %} ({{ stats.stale_pull_requests }} stale) {% endif %} · {{ stats.total_branches }} branches {% if stats.last_commit_at %} Last activity: {{ time_ago(stats.last_commit_at) }} {% else %} Last activity: {% endif %}
{# ── Stale Issues ──────────────────────────────────────────────────── #} {% if stats.stale_issue_items %}

Stale Issues

{{ stats.open_issues }} total {{ stats.stale_issues }} stale{% if stats.open_issues > 0 %} ({{ '%.0f' | format(stale_issues_pct) }}%){% endif %}
{% for issue in stats.stale_issue_items %} {% endfor %}
# Title Author Last Activity
{{ issue.number }} {{ issue.title }} {{ issue.author }} {% if issue.last_activity_at %}{{ issue.last_activity_at.strftime('%Y-%m-%d') }}{% else %}—{% endif %}
{% endif %} {# ── Stale Pull Requests ───────────────────────────────────────────── #} {% if stats.stale_pr_items %}

Stale Pull Requests

{{ stats.open_pull_requests }} total {{ stats.stale_pull_requests }} stale{% if stats.open_pull_requests > 0 %} ({{ '%.0f' | format(stale_prs_pct) }}%){% endif %}
{% for pr in stats.stale_pr_items %} {% endfor %}
# Title Author Last Activity
{{ pr.number }} {{ pr.title }} {{ pr.author }} {% if pr.last_activity_at %}{{ pr.last_activity_at.strftime('%Y-%m-%d') }}{% else %}—{% endif %}
{% endif %} {# ── Workflows & Checks (compact two-column) ──────────────────────── #} {% if workflows_by_branch or checks_by_branch %}
{# ── Workflows Column ── #}
{% if workflows_by_branch %}

Workflows

{%- set wf_total = stats.workflows | length -%} {%- set wf_passing = wf_total - workflow_failures - workflow_pending -%} {%- if wf_passing %} {{ wf_passing }} passing{% endif -%} {%- if wf_passing and workflow_pending %}·{% endif -%} {%- if workflow_pending %} {{ workflow_pending }} pending{% endif -%} {%- if (wf_passing or workflow_pending) and workflow_failures %}·{% endif -%} {%- if workflow_failures %} {{ workflow_failures }} failing{% endif -%}
{% for branch, workflows in workflows_by_branch.items() %} {% if workflows_by_branch | length > 1 %}
{{ branch }}
{% endif %} {% for wf in workflows %} {% endfor %} {% endfor %} {% else %}
Workflows

No workflows found.

{% endif %}
{# ── Checks Column ── #}
{% if checks_by_branch %}

Checks

{%- set chk_total = checks_by_branch.values() | map('length') | sum -%} {%- set chk_passing = chk_total - check_failures - check_warnings -%} {%- if chk_passing %} {{ chk_passing }} passing{% endif -%} {%- if chk_passing and check_warnings %}·{% endif -%} {%- if check_warnings %} {{ check_warnings }} warning{% endif -%} {%- if (chk_passing or check_warnings) and check_failures %}·{% endif -%} {%- if check_failures %} {{ check_failures }} failing{% endif -%}
{% for branch, checks in checks_by_branch.items() %} {% if checks_by_branch | length > 1 %}
{{ branch }}
{% endif %} {% for chk in checks %} {% endfor %} {% endfor %} {% endif %}
{% endif %} {% endblock %}