{% from "filtered-jobs.html" import filtered_jobs with context %} {% extends "layout.html" %} {% block title %}PR {{ number }}{% endblock %} {% block head %} {% endblock %} {% macro batch_state_icon(state) %} {% if state == 'success' %} check_circle {% elif state in ('failure', 'error') %} cancel {% elif state == 'cancelled' %} block {% endif %} {% endmacro %} {% macro batch_history_table(batches) %}
| id | state |
|---|---|
| {{ batch['id'] }} | {% if 'state' in batch and batch['state'] %} {{ batch_state_icon(batch['state']) }} {{ batch['state'] }} {% endif %} |
Not in the merge queue - {% if build_failing and not review_approved %}needs approval and build is failing. {% elif not review_approved %}needs approval. {% else %}build is failing. {% endif %}
{% else %} {% if prs_ahead_in_queue %}{{ prs_ahead_in_queue | length }} PR(s) ahead in queue:
No approved PRs ahead - this PR is next to merge.
{% elif is_merge_candidate %}This PR is the current merge candidate.
{% else %}Not yet in the merge queue - awaiting build results.
{% endif %} {% if blocking_deploy_batch_id %}hourglass_top Deploy batch {{ blocking_deploy_batch_id }} is running - merge blocked until it completes.
{% endif %} {% endif %}Build error:
{{ exception }}
{% else %}
{% if pr_authorized %}
No current build — waiting for a build slot (or a retry is being processed). View CI dashboard.
{% else %}Build blocked: this PR's latest commit is not authorized. It must be reviewed and approved manually by a developer before authorizing.
{% endif %} {% endif %} {% endif %} {% if not active_pr and pr.merged %}No deploy batch found.
{% endif %} {% endif %}