{{ "✔" if report.ok else "✘" }} {{ title }}

{{ generated }}{% if report.environment %} · env {{ report.environment }}{% endif %} · {{ "%.1f" % (report.duration_ms / 1000) }} s{% if run_url %} · CI run{% endif %}

api-qovrix {{ version }}

{{ report.counts.fail }}failed
{{ report.counts.error }}errors
{{ report.counts.pass }}passed
{{ report.counts.skipped }}skipped
{% for service, monitors in services %}

{{ service }}

{% for m in monitors %} {{ m.status }} {{ m.name }} {% if m.summary %}{{ m.summary }}{% endif %} {% for s in m.steps if s.status_code %}{{ s.status_code }}{% if not loop.last %}/{% endif %}{% endfor %} · {{ "%.0f" % m.duration_ms }} ms{% if m.attempts > 1 %} · attempt {{ m.attempts }}{% endif %}
{% for w in m.warnings %}

! {{ w }}

{% endfor %} {% for step in m.steps %}
{{ step.method }} {{ step.url }} {% if step.status_code %}{{ step.status_code }}{% endif %}{% if step.duration_ms %} · {{ "%.0f" % step.duration_ms }} ms{% endif %}{% if step.skipped %} · skipped{% endif %}
{% if step.timings %}

{% for k, v in step.timings.items() %}{{ k }} {{ "%.0f" % v }} ms{% if not loop.last %} · {% endif %}{% endfor %}

{% endif %} {% if step.error %}

{{ step.error }}

{% endif %} {% if step.assertions %}
    {% for a in step.assertions %}
  • {{ '✔' if a.passed else '✘' }} {{ a.name }}{% if a.message and not a.passed %}: {{ a.message }}{% endif %}
  • {% endfor %}
{% endif %} {% if step.drift and step.drift.changes %}
Drift ({{ step.drift.status }}) {% for c in step.drift.changes %} {% endfor %}
{{ c.path }}{{ c.message }}{{ c.severity }}
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}